如何从 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。
例如:
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。