如何将相同的值添加到一行中的多个列表中?
Posted
技术标签:
【中文标题】如何将相同的值添加到一行中的多个列表中?【英文标题】:How can I add the same value into multiple lists in one line? 【发布时间】:2021-11-15 01:24:55 【问题描述】:我有两个列表,l1 和 l2
List<string> l1 = new List<string>();
List<string> l2 = new List<string>();
我想一次性将string.Empty
放入它们中。
我们可以为变量做 -
string a;
string b;
a = b = string.Empty;
我不想创建List<List<string>>
有人可以帮我吗?提前致谢。
【问题讨论】:
【参考方案1】:我想一次性将 string.Empty 放入它们中。
你不能。您可以使它们指向同一个列表,但您不能同时添加到两个列表中。这也没有任何意义。你什么也得不到。如果除了代码美学之外您还需要它,请打开一个包含您这样做的理由的问题,因为根据您想用它实现的目标有不同的概念。
【讨论】:
【参考方案2】:您可以使用空字符串变量初始化列表。
List<string> l1 = new List<string>() string.Empty ;
或者这样的东西
string[] array = string.Empty ;
List<string> l1 = new List<string>(array);
List<string> l2 = new List<string>(array);
无论哪种方式,您都将拥有与现在相同或更少的代码行数。
l1 = l2
不适用于列表,但您可以这样做
List<string> l2 = l1.ToList();
【讨论】:
所以你可以在一行中完成,但它真的不可读:List<string> l1 = new() string.Empty , l2 = l1.ToList();
您仍然需要声明l2
。这让我想起了旧的 C 代码,其想法是尽可能少地编写代码,或者让它看起来像一个符号波。
确实定义了 l2,List<string> l1 = new() string.Empty , l2 = l1.ToList();
编译正常。【参考方案3】:
您可以编写一个将您的项目添加到两个列表的方法:
private void AddToTwoLists<T>(List<T> list1, List<T> list2, T item)
list1.Add(item);
list2.Add(item);
你可以调用它
AddToTwoLists(l1, l2, string.Empty);
【讨论】:
【参考方案4】:我不想创建
List<List<string>>
如果您只有两个列表,您可以不使用二维数组来完成,但如果您计划在某个时候拥有更多列表,那么使用数组将是一种更方便且可扩展的解决方案:
var l1 = new List<string>();
var l2 = new List<string>();
foreach (var list in new[] l1, l2 )
list.Add(string.Empty);
它可以让你避免为每个列表写Add
。
【讨论】:
【参考方案5】:你可以当然可以这样做:
// Most comparable solution to:
string a;
string b;
a = b = string.Empty;
// is in my opinion this
List<string> list1, list2 = new List<string>(list1 = new List<string> string.Empty );
但老实说,我不明白你的问题为什么你会这样做。 这段代码只是用一个条目创建两个列表。最后是相同的结果:
List<string> list1 = new List<string> string.Empty
List<string> list2 = new List<string> string.Empty
dotnet fiddle 中的完整示例
【讨论】:
以上是关于如何将相同的值添加到一行中的多个列表中?的主要内容,如果未能解决你的问题,请参考以下文章
Python:如何将具有相同变量类型的多个列表合并到一个列表列表中?