[英]Is there a way to extract primitive fields from a Dictionary of objects in C#?
這是我想做的事情:
ObjectA
{
int ID;
string name;
}
我想將Dictionary轉換為List,其中列表中的字符串是字典中ObjectAs的.name值。 顯然,我可以手動遍歷字典值並以這種方式構建列表,但是我希望C#/ .NET中有一種更簡單或更快速的方法。 如果LINQ解決方案比以下方法/更快或更簡單,那就更好了:
List<string> aNames = new List<string>();
foreach(ObjectA a in DictionaryA.Values)
aNames.Add(a.name);
這是Matthew回答的非查詢表達式形式:
var names = DictionaryA.Values.Select(x => x.name).ToList();
(當我只是做一個選擇或一個地方時,我傾向於不使用查詢表達式,尤其是當我還需要調用另一個方法(例如ToList
。)
或者:
var names = DictionaryA.Select(x => x.Value.name).ToList();
(from val in DictionaryA.Values select val.name).ToList()
查詢后,有很多方法可以執行此操作:
IQueryable<string> query = DictionaryA.Values.Select(v => v.name);
//use the Constructor of List<T> that accepts IEnumerable<T>
List<string> aNames = new List<string>(query);
//
//or use the AddRange method for existing Lists
List<string> aNames = new List<string<();
aNames.AddRange(query);
//
//or use the Enumerable.ToList extension method
List<string> aNames = query.ToList();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.