1

我正在尝试加入 aDictionary<int, string>List<MyClass>它会引发错误

“无法从用法中推断出方法的类型参数”。

但在我看来,所有的论点都被完美地定义了......

class Row
{
        public string name { get; set; }
        public string[] data { get; set; }
}

Dictionary<int, string> devices = new Dictionary<int,string>();
List<Row> rows = new List<Row>();

rows = rows.Join(devices, row => row.data[0], device => device.Key, (row, device) => { row.data[1] = device.Value; return row; }).ToList();

row是 a Rowdevice是 a pair<int,string>device.Key是a int,并且device.Value是 k。问题是什么?我知道这一定是一件愚蠢的事情,但我被这个错误困住了。

4

2 回答 2

1

row.data[0]是一个字符串,但是device.Key是一个整数,所以键类型不匹配。

于 2013-04-01T11:39:18.440 回答
0

您收到此错误是因为device => device.Keyis an intwhere as row.data[0]is a string. 它们都是泛型类型TKey,需要保持一致。可以通过调用来ToString()修复device.Key

rows = rows.Join(devices, row => row.data[0], device => device.Key.ToString(), (row, device) => { row.data[1] = device.Value; return row; }).ToList();
于 2013-04-01T11:39:46.460 回答