私は C# の高度なプログラミングに慣れていないので、その多くを理解するのは非常に新しいことです。
カスタム クラスとキーと値のペアのカスタム クラスのリストを持つカスタム Dictionary オブジェクトを拡張しようとしています。
この静的クラスでは、ディクショナリの部分キーの部分一致機能を拡張しています。これList<T>
は、1 つではなく を返す必要がありT
ます。
public static class GADictionaryExtention
{
internal static List<T> PartialMatch<T>(this Dictionary<KeyDimensions, T> dictionary,
KeyDimensions partialKey)
{
IEnumerable<KeyDimensions> fullMatchingKeys = null;
fullMatchingKeys = dictionary.Keys.Where(currentKey => currentKey.Contains(partialKey));
List<T> returnedValues = new List<T>();
foreach (KeyDimensions currentKey in fullMatchingKeys)
{
returnedValues.Add(dictionary[currentKey]);
}
return returnedValues;
}
}
私の呼び出しコードではList<T>
、次のコードですべての結果にアクセスしようとしています。
List<List<Metric>> m1 = DataDictionary.PartialMatch(kd);
しかし、私は次のエラーが発生しています。
Cannot implicitly convert type
'System.Collections.Generic.IEnumerable<System.Collections.Generic.List<Metric>>'
to 'System.Collections.Generic.IEnumerable<Metric>'.
An explicit conversion exists (are you missing a cast?)