아래 코드에서 개체를 자체에 조인하려고합니다. join kinda는 작동하지만 예상 된 1 행 대신 4 행을 제공합니다. 동일한 1 행에 두 값이 있고 동일한 객체의 4 사본이 아닙니다. 감사!!개체를 linq join하는 방법은 무엇입니까?
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
});
-1이 표시됩니다. 무엇을 성취하려고합니까? Linq와 Join을 그림으로 가져 오는 것보다 더 간단한 방법은 없을까요? 그것은 당신이 2 경기 (-1000과 -1001)를 십자가에 합류시켜 4 경기로 끝내는 것 같습니다. –