簡體   English   中英

合並兩個不同的列表C#

[英]Combine two different lists C#

我有兩節課

public class AuditResults
    {
        public string ID { get; set; }
        public string Question { get; set; }
    }

public class AuditResults2
    {
        public int Channel_ID { get; set; }
        public bool Available_Item{ get; set; }
    }

AuditResults將具有從查詢返回的多行,而AuditResults2將僅具有一行。

我想將所有結果合並到類似

[
      {
      "ID": "1",
      "Question": "Question 1 here",
   },
      {
      "ID": "3",
      "Question": "Question 3 here",
   },
     "Channel_ID" : true,
     "Available_Item" : false
]

如果我要創建包含其他兩個類對象的第三類,我可以在第三個類中添加2個類結果。

public class AuditResultsFinal
    {
        public AuditResults AuditResults {get; set;}
        public AuditResults2 AuditResults2 { get; set; }
    }

審核結果

List<AuditResults> myResults = Database.SqlQuery<AuditResults>(query,model.UserName).ToList();

AuditResults2的結果

List<AuditResults2> myResults2 = Database.SqlQuery<AuditResults2>(query,model.UserName).ToList();

將以上2個結果合並到myFinalResults中的操作:

List<AuditResultsFinal> myFinalResults = new List<AuditResultsFinal>();

您需要在最后一堂課中列出AuditResults。 因此,您需要使其成為列表類型。 如下更改您的AuditResultsFinal

public class AuditResultsFinal
    {
        public List<AuditResults> AuditResults { get; set; }
        public List<AuditResults2> AuditResults2 { get; set; }
    }

然后,您可以在AuditResultsFinal中分配AuditResultsAuditResults2列表

var AuditResults1 = new List<AuditResults>{
                new AuditResults{ID="1",Question="Q1"},
                new AuditResults{ID="2",Question="Q2"}
            };

            var AuditResults2 = new List<AuditResults2>{
                new AuditResults2{Channel_ID=3,Available_Item=true},
                new AuditResults2{Channel_ID=4,Available_Item=false}
            };

            AuditResultsFinal final = new AuditResultsFinal()
            {
                AuditResults = AuditResults1,
                AuditResults2 = AuditResults2
            };

在您不關心的情況下嘗試執行此操作,在AuditResultsFinal哪些對象組合在一起並且兩個列表的長度相同。

var result = new List<AuditResultsFinal>();

for(var i = 0; i < myResults.Count; i++)
{
   res.Add(new AuditResultsFinal() { AuditResults = myResults[i], AuditResults2 = myResults2[i] });
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM