[英]c# lambda dictionary, char[] selecting items
我對lambda並不是最好的,誰能教我如何使用字符數組從字典中選擇項目。
說我有一本字典;
Dictionary<char, int> someDictionary:
我有一個字符數組;
char[] someCharacterArray;
如何使用存儲在char數組中的鍵集合從字典中選擇項目;
someOtherDictionary = someDictionary.select( d =>
someCharacterArray.contains(d.key)).toDictionary();
我知道那當然行不通,但是可以說明我想要的。
希望我的問題很清楚,但我整夜都醒着,所以請對我溫柔:)
預先感謝,達倫。
如果要檢查char是否包含在Dictionary中。
使用where
方法
ToDictionary
應該設置key
和value
Func
委托
根據您的問題,您可能想要像這樣。
Dictionary<char, int> someOtherDictionary = someDictionary
.Where(d => someCharacterArray.Contains(d.Key))
.ToDictionary(o=> o.Key, o=>o.Value);
編輯
在數據結構中這將更快。 (感謝@TypeIA)
Dictionary<char, int> someOtherDictionary = someCharacterArray
.Where(ch => someDictionary.ContainsKey(ch))
.Select(ch => new { key = ch, value = someDictionary[ch] })
.ToDictionary(o => o.key, o => o.value);
這種問題需要Join 。
Dictionary<char, int> someDictionary = new Dictionary<char,int>
{
{'A',1},
{'B',2},
{'C',3},
{'D',4}
};
char[] someCharacterArray = new [] {'A','B','C','E'};
var filteredDictionary = someDictionary
.Join
(
someCharacterArray,
d => d.Key,
c => c,
(d,c) => new { Key = d.Key, Value = d.Value}
)
.ToDictionary
(
k => k.Key,
v => v.Value
);
Console.WriteLine(string.Join("\r\n", filteredDictionary.Select(d => string.Format("{0}={1}", d.Key, d.Value))));
輸出:
A=1
B=2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.