如何将多个单列列表组合成多列单个列表?

时间:2017-11-22 22:15:12

标签: c# list linq

我有以下课程:

    public class AuditBatch
{
    public List<string> Tables { get; set; }
    public List<long> TotalRecords { get; set; }
    public List<int> Index { get; set; }

然后由另一个类调用它,并将值添加到这些列表中:

auditBatch.Tables.Add(extractQuery.Category);
auditBatch.TotalRecords.Add(rowsInFile + totalRowsInFile);
auditBatch.Index.Add(fileIndex);  

然后我希望能够将这些列表添加到一个列表中,该列表将每个列表作为列,因此它看起来像这样:

Tables | TotalRecords | FieldIndex
John      333             1
Paul      200             4
Ringo     890             1

稍后我可能会感兴趣的是FieldIndex分组并获得最高的TotalRecords Row。

我已经按照了很多例子,但似乎找不到任何有用的东西。

1 个答案:

答案 0 :(得分:0)

您似乎将数据存储在三个并行列表中。这些项之间唯一的链接是列表索引,可以使用LINQ访问,但是这个解决方案比它需要的更加尴尬。

12秒是正确的:您应该重新构建类型,以便在单个记录中添加相关信息。像这样:

public class AuditRow
{
    public string Table { get; set; }
    public long TotalRecords { get; set; }
    public int Index { get; set; }
}

然后,创建一个行列表并一次填充一行:

        List<AuditRow> auditBatch = new List<AuditRow>();

        AuditRow row = new AuditRow();
        row.Table = "John";
        row.TotalRecords = 333;
        row.Index = 1;

        auditBatch.Add(row);

        //etc. for each row.