使用Lambda表达式进行字符串连接

Dar*_*son 8 c# linq lambda

如果我有一个像这样的类的列表:

class Info {
    public string Name { get; set; }
    public int Count { get; set; }
}

List<Info> newInfo = new List<Info>()
{
    {new Info { Name = "ONE", Count = 1 }},
    {new Info { Name = "TWO", Count = 2 }},
    {new Info { Name = "SIX", Count = 6 }}
};
Run Code Online (Sandbox Code Playgroud)

可以使用Lambda表达式来串联连接类列表中的属性,如下所示:

"ONE(1), TWO(2), SIX(6)"

Aus*_*nen 16

string.Join(", ", newInfo.Select(i => string.Format("{0}({1})", i.Name, i.Count)))
Run Code Online (Sandbox Code Playgroud)

您也可以覆盖ToString.

class Info
{
   ....
   public override ToString()
   {
        return string.Format("{0}({1})", Name, Count);
   }
}
Run Code Online (Sandbox Code Playgroud)

...然后调用很简单(.Net 4.0):

string.Join(", ", newInfo);
Run Code Online (Sandbox Code Playgroud)


asa*_*yer 9

String.Join(", ", newInfo.Select(i=>i.Name+"("+i.Count+")") );
Run Code Online (Sandbox Code Playgroud)