Экземпляр, который реализует IGrouping<T, U>
, имеет (один) ключ типа T
.Поскольку вы хотите сравнивать на основе ключей (множественное число), IGrouping<string, DataRow>
- это не то, что вам нужно.
Вам нужен IEnumerable<IGrouping<string, DataRow>>
или ILookup<string, DataRow>
.То, что имеет много ключей.
ILookup<string, DataRow> source1 = GetSource1();
ILookup<string, DataRow> source2 = GetSource2();
var BothKeyed =
(
from key in source1.Select(g => g.Key).Union(source2.Select(g => g.Key))
select new
{
Key = key,
In1 = source1[key],//note, In1 may be empty.
In2 = source2[key] //note, In2 may be empty.
}
).ToLookup(x => x.Key);