使用Lambda连接对象的字符串属性

26
请考虑以下事项:
public class MyObject
{
   public bool B;
   public string Txt;
}

List<MyObject> list; //list of a bunch of MyObject's 

使用lambda表达式,我该如何生成一个由那些B为true的对象的Txt组成的逗号分隔值字符串?
3个回答

54

针对 .NET 3.5:

string.Join(",", list.Where(o => o.B).Select(o => o.Txt).ToArray())

对于 .NET 4.0:

string.Join(",", list.Where(o => o.B).Select(o => o.Txt))

使用 .NET 4,您不需要使用 .ToArray() - recursive
我需要这个,但是适用于Visual Basic .net。 - Luis Tellez
3
@Luis String.Join(",", list.Where(Function(x) x.B).Select(Function(x) x.Txt)) - Diego

3
string myString = string.Join(",", list.Where(x => x.B).Select(x=>x.Txt));

-2
var strFinal = "";
myList.ForEach(pq => strFinal += ", " + pq.ItemId);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接