c# - 试图将 IList 转换为 List 以便 AddRange

标签 c# asp.net .net

我有一个 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/

相关文章:

mysql asp.net 从存储过程返回多行结果集

.net - 从 odbc 数据库中获取所有表和所有列

c# - 在 c sharp 中广泛使用哈希表

c# - "char.IsUpper"(不带括号)是如何工作的?

C# MySQL 在将数据插入我的表时遇到 fatal error

c# - ASP .Net MVC中的错误处理

c# - 遍历所有 Unicode 字符

asp.net - 回发期间出现“由于对象的当前状态,操作无效”错误

c# - 如何在 asp.net c# 中通过下拉列表获取最近 3 年的数据?

c# - 如何在 .Net Core 中加载多个配置文件