IGrouping:IGroupingがIDictionaryのようにIEnumerable <KeyValuePair>を継承しないのはなぜですか?
public interface IGrouping<out TKey, out TElement> : IEnumerable<TElement>,
IEnumerable
たIDictionary:
public interface IDictionary<TKey, TValue> : ICollection<KeyValuePair<TKey, TValue>>,
IEnumerable<KeyValuePair<TKey, TValue>>, IEnumerable
ので、IDictionary
実装IEnumerable<KeyValuePair<TKey, TValue>>
IGrouping
はIEnumerable<TElement>
を実装しながら。 IGrouping
の要素にキーが含まれている場合、インターフェイスでもKeyValuePair
を使用しないのはなぜですか?
List<int> myList = new List<int>{ 1, 2, 3, 1};
var grp = myList.GroupBy(x => x).ToDictionary(x => x.Key, x => x.Count());
if (grp.ContainsKey(someValue)){...}
:それはまた次のようになります((1)時間Oに)グループのキーを見つけるしようとする試みを意味し、
IGrouping
に利用できない
IGrouping
など
IDictionary.ContainsKey
などのために有用であろう
IDictionary
に実装された方法のように思えます
私はちょうどIGrouping
を間違って使用していますか?私は何が欠けていますか?