[英]How do I add a List<Obect2> to List<Object1> in a C# foreach loop?
我有一個列表,其中包含來自 Web 服務的一些 Json。 我可以使用下面的代碼填充 displayRecords。 但是,我無法使用文本字段填充文本字段。 每個 displayRecord 可以有 1 到 n 個文本。
List<DisplayRecord> displayRecords = new List<DisplayRecord>();
foreach (var displays in ro.serviceHistory.displayRecords)
{
displayRecords.Add(new DisplayRecord
{
displayDate = displays.displayDate,
odometer = displays.odometer,
type = displays.type
});
foreach(var texts in ro.serviceHistory.displayRecords)
{
texts.text = displays.text;
}
}
這是 DisplayRecord 類
public class DisplayRecord
{
public string displayDate { get; set; }
public string odometer { get; set; }
public string type { get; set; }
public List<string> text { get; set; }
}
編輯一些清晰文本字段永遠不會從第二個循環中獲取值。 他們都顯示Null。
您正在分配一個string
,當構造函數“詢問” List<string>
,我認為這會起作用:
List<DisplayRecord> displayRecords = new List<DisplayRecord>();
foreach (var displays in ro.serviceHistory.displayRecords)
{
displayRecords.Add(new DisplayRecord
{
displayDate = displays.displayDate,
odometer = displays.odometer,
type = displays.type,
text = displays.text;
});
}
如果您嘗試填充 DisplayRecord 類的文本屬性,則必須將其添加到列表中,而不是嘗試將其直接設置為字符串。
因為我不知道ro.serviceHistory.displayRecords.text
是否是一個列表,所以我在下面的兩個解決方案中都給出了:
你需要做這樣的事情:
List<DisplayRecord> displayRecords = new List<DisplayRecord>();
foreach (var displays in ro.serviceHistory.displayRecords)
{
var displayRecord = new DisplayRecord
{
displayDate = displays.displayDate,
odometer = displays.odometer,
type = displays.type
}
displayRecord.text.AddRange(displays.text);
displayRecords.Add(displayRecord);
}
AddRange() 將獲取一個 List 並將其插入到變量 text 中。
如果您想將單個字符串添加到列表中,請改用 Add()。
List<DisplayRecord> displayRecords = new List<DisplayRecord>();
foreach (var displays in ro.serviceHistory.displayRecords)
{
var displayRecord = new DisplayRecord
{
displayDate = displays.displayDate,
odometer = displays.odometer,
type = displays.type
}
displayRecord.text.Add(displays.text);
displayRecords.Add(displayRecord);
}
警告
如果您有一個 uninstantiatedList(說 null 而不是 Count=0),那么當您嘗試添加或訪問它時,它會拋出錯誤。
這應該讓你想要你想要的:
var displayRecords = ro.serviceHistory.displayRecords
.Select(r=>new DisplayRecord
{
displayDate = r.displayDate,
odometer = r.odometer,
type = r.type,
text = r.text
}).ToList();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.