簡體   English   中英

有沒有辦法從C#中的對象字典中提取基本字段?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM