首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >连接列表中的值

连接列表中的值
EN

Stack Overflow用户
提问于 2013-12-31 11:29:53
回答 1查看 131关注 0票数 0

我有DeliveryNote列表,客户列表组成的DTO。每张交货单包含报价列表,因此每张交货单都有多个报价。但只有一个客户。客户参考仅在报价中提供。

我需要在报价列表中选择查询,如交货单日期、编号和引用,用逗号分隔(如果有多个)。

我像下面这样写LINQ

代码语言:javascript
复制
 var source = from A in _deliveryNote.DeliveryNoteList
     select new
           {
             A.ID,
             A.Date,
             A.Number,
             Reference = String.Join(", ", from item in A.Quotations select item.Reference),
             CustomerName = (A.Quotations != null ? _deliveryNote.CustomerList.Find(x => x.ID == A.Quotations.First().CustomerID).Name : string.Empty) 
                     };

这很好用。但我需要一些技巧,比如我未处理的情况,比如如果没有可用的引号,如何处理它,以及当单个wuotation适用时,如何避免逗号。

我还得到了一些其他类型的查询,如下图所示。

代码语言:javascript
复制
var source = from A in _deliveryNote.DeliveryNoteList from B in A.Quotations
    select new
            {
               A.ID,
               A.Date,
               A.Number,
             //Reference = String.Join(", ", from item in A.Quotations select item.Reference),
             //CustomerName = (A.Quotations != null ? _deliveryNote.CustomerList.Find(x => x.ID == A.Quotations.First().CustomerID).Name : string.Empty) //_deliveryNote.CustomerList.Find(x => x.ID == C.CustomerID).Name : String.Empty)
               };

但在这里,我不知道如何连接引用和检索客户名称

请告诉我哪种方法更好,两种方法的区别是什么?

EN

回答 1

Stack Overflow用户

发布于 2013-12-31 12:27:47

String.Join方法已经很好地处理了你在“但我需要一些技巧,比如我的未处理的情况下,如果没有可用的引号,它是如何处理的,以及当单个wuotation适用时如何避免逗号”中提到的问题。您可以通过执行以下快速测试来证明这一点:

代码语言:javascript
复制
var data = new List<string>();
var str = String.Join(", ", data);
//you'll get empty string here
Console.WriteLine(str);

data.Add("test 1");
str = String.Join(", ", data);
//you'll get "test 1" here, no unnecessary comma appended
Console.WriteLine(str);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20851284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档