无法将类型 IEnumerable>' 隐式转换为 “IEnumerable
本文关键字:IEnumerable 转换 Metr List Metric 类型 | 更新日期: 2023-09-27 18:36:04
我是C#高级编程的新手,所以很多对我来说都是非常新的。
我正在尝试扩展我的自定义字典对象,该对象具有自定义类和键值对的自定义类列表。
在这个静态类中,我为我的字典的部分键扩展了部分匹配功能,该键应返回一个List<T>
,而不仅仅是一个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?)
您的调用调用应该是这样的:
List<Metric> m1 = DataDictionary.PartialMatch(kd);
由于您从扩展方法返回List<T>
。
更新:根据您的评论,T = List<Metric>
,我认为您应该投射如下结果:
List<List<Metric>> m1 = (List<List<Metric>>)DataDictionary.PartialMatch(kd);
本文关键字:IEnumerable 转换 Metr List Metric 类型 | 更新日期: 2023-09-27 18:36:04
我是C#高级编程的新手,所以很多对我来说都是非常新的。
我正在尝试扩展我的自定义字典对象,该对象具有自定义类和键值对的自定义类列表。
在这个静态类中,我为我的字典的部分键扩展了部分匹配功能,该键应返回一个List<T>
,而不仅仅是一个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?)
您的调用调用应该是这样的:
List<Metric> m1 = DataDictionary.PartialMatch(kd);
由于您从扩展方法返回List<T>
。
更新:根据您的评论,T = List<Metric>
,我认为您应该投射如下结果:
List<List<Metric>> m1 = (List<List<Metric>>)DataDictionary.PartialMatch(kd);