[英]inserting a List<string> and List<Object> into Dictionary
我有一個List<string> keys
和List<Objects> obj
的項目List<string> keys
,其中該對象有多個項目,而另一個對象,我們稱其為keyholder,其名稱與鍵的值相同。
List <string> key = {"a","b"}
List <Object> obj = object with items {name, id, IEnumerable<keyholder>}
keyholder has value name which can be the same with key.
我想創建一個
key.ToDictionary(e=>e, f=> obj.Where(obj.keyholder.Where(keyholder.name == key));
僅當keyholder.name與鍵具有相同的值時,我要將對象添加到字典中。
您的語法不正確。 Where
以lambda函數為參數。
如果keyholder
可以使用給定的密鑰存儲多個值,則可以將列表轉換為Dictionary<TKey, TValue[]>
:
key.ToDictionary(k => k,
k => obj.keyholder.Where(x => x.name == key).ToArray());
它將返回一個包含key
中所有項作為key的Dictionary
,以及obj.keyholder
具有相應name
的值數組。
請注意,您的obj.keyholder
應該是List<TValue>
,其中TValue
是具有name
屬性的類型。 您不能將此函數應用於List<object>
因為object
沒有name
屬性。
在你們的幫助下,我通過使用contains關鍵字解決了該問題,因為IEnumerable可以位於項目列表中
key.ToDictionary(k => k,
k => obj.Where(g => g.keyholder.Contains(k)).ToList());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.