[英]How to combine two lists with different properties based on a condition in 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中分配AuditResults和AuditResults2的列表 。
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.