0

我有以下格式的记录,我想使用 linq 进行数据透视,您能帮我了解如何使用 Linq 进行数据透视吗?

记录

结果

4

1 回答 1

1

我会尝试这样的事情:

var userIds = table.Select(row => row.userid).Distinct();
var checkTimes = table.Select(row => row.CheckTime).Distinct();

var pivotTable =
    from userid in userIds
    select new {
        userid,
        attflags = checkTimes.Select(checkTime =>
            table.Where(row => row.userid == userid && row.CheckTime == checkTime)
                 .Select(row => row.attflag)
                 .DefaultIfEmpty("-")
                 .FirstOrDefault())
    };

 Console.WriteLine("userid\t" + String.Join("\t", checkTimes));
 foreach (var pivotRow in pivotTable)
     Console.WriteLine(pivotRow.userid + "\t" + String.Join("\t", pivotRow.attflags));
于 2013-07-29T15:22:38.323 回答