簡體   English   中英

使用linq為新列表賦值

[英]assign value to a new list using linq

假設我有一個名為Company的課程

public class Company 
{
   public string name;
   public string id;
}

我有一個名為CompanyList的列表

var companyList = new List<Company>();

我想將name =“Company A”,id =“001”分配給這個空的companyList變量。

我該怎么辦?

 companyList.FirstOrDefault().Name = "Company A";
 companyList.FirstOrDefault().Id = "001";

在為集合中的公司分配值之前,必須將公司添加到集合中。 您正在設置該公司的值,而不是集合本身的值。

使用:

var companyList = new List<Company>();
companyList.Add(new Company { Name = "Company A", Id = "001" });

要么:

var companyList = new List<Company>();
companyList.Add(new Company());
// Assumes you want to modify the first company in the list
companyList[0].Name = "Company A";
companyList[0].Id = "001";

您可以使用集合初始值設定項:

var companyList = new List<Company>{ new Company { Name = "Company A", Id = "001" } };

實際上和波紋管一樣,有點緊湊

var companyList = new List<Company>();
companyList.Add(new Company { Name = "Company A", Id = "001" });

您似乎只需要創建Company實例,然后將其添加到列表中。 這是一個例子:

List<Company> companyList = new List<Company>();
Company currentCompany = new Company(){id="001", Name="Company A"};
companyList.Add(currentCompany);

附注**請注意使用問題中指明的代碼段

 companyList.FirstOrDefault().Name = "Company A";
 companyList.FirstOrDefault().Id = "001";

這可能會導致未被捕獲的空引用異常,從而導致程序崩潰。 使用FirstOrDefault()實例化對象時,始終檢查null。

Company temp = companyList.FirstOrDefault();
if(temp !=null)
{
    temp.Name = "Company A";
    temp.id = "001"; 
}

這是一個可以直接初始化集合的示例:

var companyList = new List<Company> {
    new Company { name = "Company A", id = "001" },
    new Company { name = "Company B", id = "002" }
};

為了安全地更新列表(沒有execption)你應該做這樣的事情:

 var company =  companyList.FirstOrDefault() ; 
    if (company != null) {
    company.Name ="aaa";
    company.Id = "123" ;
     }

暫無
暫無

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

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