使用 C#,我有以下使用 IDictionary 的串列:
List<IDictionary<string, string>> lstDictionary;
填充上面的串列后,我需要將其轉換為基于類的強型別串列:
public class customer
{
public string FirstName{ get; set; }
public string LastName{ get; set; }
public string Status{ get; set; }
}
List<customer> lstCustomers;
所以現在,我正在嘗試使用 LAMBDA/LINQ 進行轉換但無法正常作業(在 p.FirstName 上顯示錯誤訊息):
lstCustomers = lstDictionary.Select(p => new customer
{
FirstName = p.FirstName,
LastName = p.LastName,
Status = p.Status
}).ToList();
任何幫助,將不勝感激。
uj5u.com熱心網友回復:
請記住,p呼叫 to中的每個Select都是一個IDictionary<string, string>. 在 .Net 中,您使用索引器來訪問字典中的元素;沒有p.FirstName,但可能有p["FirstName"]。
因此,假設密鑰始終正確設定,它將如下所示:
lstCustomers = lstDictionary.Select(p => new customer
{
FirstName = p["FirstName"],
LastName = p["LastName"],
Status = p["Status"]
}).ToList();
最后,我需要在我的第一段中指出“可能”。如果 Dictionary 以意外資料結束,這有可能在運行時崩潰。在 .Net 世界中,這被認為是糟糕的設計,通常是早期犯錯的結果。有時候,無論如何你已經走得夠遠了,但錯誤仍然存??在。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/463221.html
上一篇:使用LINQ在C#中提取startsequence和endsequence之間的子字串
下一篇:Linq按元素和子元素分組
