在下面的代码中,我试图将对象连接到自身。连接有点工作,但它给我4行,而不是预期的1行,两个值在同一个新对象,而不是同一对象的4个副本。谢谢! !
var values = rptDataPkg.Datasets.Item(0).Result.AsEnumerable()
.Where(f => f.Field<int>("RowType") == 3 &&
f.Field<int>("Category") == 1 &&
((f.Field<int>("ItemID") == -1000) || (f.Field<int>("ItemID") == -1001)))
.Select(f => new
{
joinOn = 1,
Proc = f.Field<string>("Item"),
fieldVal = Convert.ToDecimal(f.Field<decimal?>(field))
}).ToList();
var join = values.Join(values, b1 => b1.joinOn, b2 => b2.joinOn,
(b1, b2) => new
{
inHVal = b1.fieldVal,
offSVal = b2.fieldVal
});
我怀疑您的values
列表有两个条目。两者的joinOn
值都是1,所以你最终会得到两行彼此匹配。如果行是A和B,就有
(A, A)
(A, B)
(B, A)
(B, B)