【发布时间】:2022-01-17 20:25:57
【问题描述】:
例如:
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 docs.microsoft.com/en-us/dotnet/csharp/programming-guide/…。在这种情况下
idList = dataList.Select(d => d.id).ToList(); -
我认为如果没有很好的理由,你根本不应该做这样的事情,因为数据已经存在于你的类中并且很容易访问。
-
But how to optimize this in a better way?.. 你的意思是如何让它不以异常结束? ;) 目前您在 getter 中递归访问idList^^
标签: c# list unity3d getter-setter