这是我的数据表(附图)。我试图通过使用Linq获得不同的形式,结果featureid值即将获得System.Linq.Enumerable.WhereSelectEnumerableIterator但在数据表中每个Featureid行都有一个值
var result1 = dtTaskandBugs.AsEnumerable().GroupBy(x => x["Storyid"])
.Select(item => new
{
Storyid = item.Key,
Assignedto = string.Join(",", item.Select(a => a["Assignedto"]).Distinct()),
Featureid = item.Select(s => s["Featureid"]),
Completed = item.Sum(y => Convert.ToInt64(y["Completed"])),
effort = item.Sum(z => Convert.ToInt64(z["effort"]))
});
错误
Featureid值为
{System.Linq.Enumerable.WhereSelectEnumerableIterator<System.Data.DataRow, object>}
结果之前的数据表
答案 0 :(得分:0)
我认为问题是由于您在选择查询结果中留下了一个惰性评估列。虽然string.Join
和IEnumerable.Sum
会立即生成值,但会为FeatureId分配值IEnumerable
(因为Select
返回的是什么)。我相信拨打ToList()
可以解决问题。
如果可能的话,我还建议使用数据模型。