如何从 getter 中包含 int 变量的 List<class> 填充 List<int>

How to populate List<int> from List<class> that contains int variable in getter

例如:

public List<Data> dataList;
public List<int> idList;

public class Data
{
  public int id;
  public string name;
}

我需要将所有 'id' 个变量从 'dataList' 获取到 'idList'。 类似的东西

public List<Data> dataList;
public List<int> idList
{
 get 
 {
   for (int i = 0; i < dataList.Count; i++)
   {
     idList.Add(dataList[i].id);
   }

   return idList
 }
};

但是如何以更好的方式优化它?

我尝试创建本地列表,用 ID 填充它,然后将它提供给 'idList'。但是我觉得这个方法没有优化

您可以为此使用 Linq Select

public List<Data> dataList;
public List<int> idList
{
  get 
  {
    return dataList.Select(x => x.Id).ToList();
  };
}

以更紧凑的方式

public List<int> idList => dataList.Select(x => x.Id).ToList();

关于 LINQ 的更多信息 here