我有这个简单的类:concat linq查询结果为字符串?
class A
{
public string Name { get; set; }
public int Age { get; set; }
}
而且我有一本字典:
Dictionary<string,A> dic = new Dictionary<string,A>();
dic["a"]=new A(){ Age=2, Name="aa"};
dic["b"]=new A(){ Age=3, Name="baa"};
dic["c"]=new A(){ Age=4, Name="caa"};
在这里,我看到一个明显的方式,所有的项目:
Console.WriteLine (dic.Select(f=>f.Key+" =>"+f.Value.Age+" "+f.Value.Name));
输出:
a =>2 aa
b =>3 baa
c =>4 caa
但我希望它是一个字符串!
这样的字符串值:
@"a =>2 aa \n
b =>3 baa \n
c =>4 caa ";
我可以与ToArray的和的string.join做到这一点:
var t=dic.Select(f=>f.Key+" =>"+f.Value.Age+" "+f.Value.Name);
Console.WriteLine (String.Join("\n",t.ToArray()));
但我敢肯定有一个更好的(更短,高贵典雅)方式 使用此语句:(加上一点)
dic.Select(f=>f.Key+" =>"+f.Value.Age+" "+f.Value.Name)
任何帮助?
我想我被误解了:-(.....让我们说我没有string.join ....... Linq的选择迭代。我想在迭代时将值累加到字符串中。 –
@RoyiNamir,你说**(短,优雅)**,国际海事组织,字符串。加入更短,更优雅。就迭代而言,任何其他选项都会涉及迭代,无论是隐藏的(在选择的情况下)还是其他的。 – Habib
你说得对。我不应该说这些话。我只想通过枚举学习字符串的积累,而不是使用tolist,string.join等外部函数。 –