gpt4 book ai didi

c# - 如何将项目添加到列表并返回新列表

转载 作者:IT王子 更新时间:2023-10-29 04:48:24 26 4
gpt4 key购买 nike

今天有人问我这个问题:

How can I add an item to a list and return that list back?

List<T>.Add(T) 的代码返回无效。所以你不能这样做:

var list = new List<string>{"item1","item2"};
var newList = list.Add("item3");

这与使用 AutoMapper 有关,尽管这部分不是特别重要。

最佳答案

一个选项是 Linq,使用 Concat :

var list = new List<string>{"item1", "item2"};
var newList = list.Concat(new[] { "item3" }).ToList();

以典型的 Linq 方式,list保持不变,newList包含来自 list 的所有项目以及新列表中的项目,在本例中为 "item3" .

您可以跳过 .ToList()保持IEnumerable<string>如果适合您的用例,结果。


如果您发现自己经常对单个项目执行此操作,则可以使用类似此扩展方法的方法来传递它们而无需 new[] { ... }语法:

public static IEnumerable<T> ConcatItems<T>(this IEnumerable<T> source, params T[] items)
{
return source.Concat(items);
}

因为 params array 前面的例子变成了:

var list = new List<string>{"item1", "item2"};
var newList = list.ConcatItems("item3").ToList();

确保不要将其与 Union 混淆,它会删除重复项。 (搜索这些重复项是您可能不想要的开销!)

关于c# - 如何将项目添加到列表并返回新列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33898088/

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