我有一个 IList
.我尝试调用ToList
然后 AddRange
.
但是,ToList()
覆盖所有结果。怎么来的?
private void AddAliasesThatContainsCtid(string ctid, IList<MamConfiguration_V1> results)
{
...
foreach (var alias in aliases)
{
var aliasId = "@" + alias;
results.ToList().AddRange(mMaMDBEntities.MamConfigurationToCTIDs_V1.Where(item => item.CTID == aliasId)
.Select(item => item.MamConfiguration_V1)
.ToList());
}
}
最佳答案
.ToList()
不转换 IEnumerable<T>
到 List<T>
,它创建并返回一个新列表,其中填充了可枚举的值。
所以你的result.ToList()
将创建一个新列表并用一些数据填充它。但它不会改变结果参数引用的对象的内容。
为了真正改变result
的内容您必须使用 .Add
的参数它的方法,或者如果您的设计允许它更改 result
的类型至List<..>
.
关于c# - 试图将 IList 转换为 List 以便 AddRange,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16382881/