从 ILookup 中选择元组抛出异常
Selecting Tuples from ILookup throws exception
我有一个 ILookup<Type, (int, string, BitmapSource)>
,它应该在下拉列表中存储元素(否则它们仅作为应用程序中的枚举存在)的显示信息。
元组是这样访问的:
public IEnumerable<(int, string, BitmapSource)> EnumerationValues(Type type)
{
return this._enumerationValues
.Where(group => group.Key == type)
.Select(group => group.SelectMany<(int, string, BitmapSource),
(int, string, BitmapSource)>(element => element));
}
然而,编译器对此有抱怨:
Cannot convert lambda expression to intended delegate type because some of the return types in the block are not implicitly convertible to the delegate return type.
甚至写 element => (element.Item1, element.Item2, element.Item3)
也会导致同样的错误。我哪里做错了,类型一模一样
获取与给定键关联的值的方法是使用索引器。这是专门为 return 与该键关联的值序列而设计的操作。尝试在整个集合中搜索匹配键会破坏首先进行查找的全部目的,因为它是一种专门设计用于快速搜索给定键的数据结构。
public IEnumerable<(int, string, BitmapSource)> EnumerationValues(Type type) =>
_enumerationValues[type];
我有一个 ILookup<Type, (int, string, BitmapSource)>
,它应该在下拉列表中存储元素(否则它们仅作为应用程序中的枚举存在)的显示信息。
元组是这样访问的:
public IEnumerable<(int, string, BitmapSource)> EnumerationValues(Type type)
{
return this._enumerationValues
.Where(group => group.Key == type)
.Select(group => group.SelectMany<(int, string, BitmapSource),
(int, string, BitmapSource)>(element => element));
}
然而,编译器对此有抱怨:
Cannot convert lambda expression to intended delegate type because some of the return types in the block are not implicitly convertible to the delegate return type.
甚至写 element => (element.Item1, element.Item2, element.Item3)
也会导致同样的错误。我哪里做错了,类型一模一样
获取与给定键关联的值的方法是使用索引器。这是专门为 return 与该键关联的值序列而设计的操作。尝试在整个集合中搜索匹配键会破坏首先进行查找的全部目的,因为它是一种专门设计用于快速搜索给定键的数据结构。
public IEnumerable<(int, string, BitmapSource)> EnumerationValues(Type type) =>
_enumerationValues[type];