У меня есть эта функция:
public static List<string> JoinDataTablesMultipleColumns(DataTable dt1, DataTable dt2, string col1, string col2, string col3) {
var multiJoin = from table1 in dt1.AsEnumerable()
join table2 in dt2.AsEnumerable()
on new {
Col1 = table1.Field < string > (col1),
Col2 = table1.Field < string > (col2),
Col3 = table1.Field < string > (col3),
}
equals new {
Col1 = table2.Field < string > (col1),
Col2 = table2.Field < string > (col2),
Col3 = table2.Field < string > (col3),
}
select new {
SeriesID = table1.Field < string > ("SeriesID"),
CatID = table2.Field < string > ("CatID")
};
//if ( multiJoin != null )
// return multiJoin.ToList();
//else
return null;
}
Это работает отлично, за исключением того, что у меня неправильный тип возврата. Единственный способ, которым я могу скомпилировать и запустить его, это вернуть null. Когда я останавливаю отладчик перед возвратом и проверяю multiJoin.ToList()
в watch window
, это именно то, что я хочу:
Но тип возвращаемого значения неправильный. Я продолжаю пытаться List<string, string>
, но это не скомпилируется. Наверное, простая вещь, но я застрял. Есть идеи?