我有這個簡單的類: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等外部函數。 –