gpt4 book ai didi

c# - 如何将一系列项目添加到 IList?

转载 作者:IT王子 更新时间:2023-10-29 03:45:59 31 4
gpt4 key购买 nike

没有AddRange() IList<T> 的方法.

如何将项目列表添加到 IList<T>无需遍历项目并使用 Add()方法?

最佳答案

如果您查看 C# source code for List<T> ,我认为 List .AddRange() 具有简单循环无法解决的优化。因此,扩展方法应该简单地检查 IList 是否为 List ,如果是,则使用其原生的 AddRange()。

查看源代码,您会看到 .NET 人员在他们自己的 LINQ 扩展中做类似的事情,例如 .ToList()(如果它是一个列表,则转换它...否则创建它)。

public static class IListExtension
{
public static void AddRange<T>(this IList<T> list, IEnumerable<T> items)
{
if (list == null) throw new ArgumentNullException(nameof(list));
if (items == null) throw new ArgumentNullException(nameof(items));

if (list is List<T> asList)
{
asList.AddRange(items);
}
else
{
foreach (var item in items)
{
list.Add(item);
}
}
}
}

关于c# - 如何将一系列项目添加到 IList?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13158121/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com