如何将相同的值添加到一行中的多个列表中?

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&lt;List&lt;string&gt;&gt;

有人可以帮我吗?提前致谢。

【问题讨论】:

【参考方案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&lt;string&gt; l1 = new() string.Empty , l2 = l1.ToList(); 您仍然需要声明l2。这让我想起了旧的 C 代码,其想法是尽可能少地编写代码,或者让它看起来像一个符号波。 确实定义了 l2,List&lt;string&gt; 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&lt;List&lt;string&gt;&gt;

如果您只有两个列表,您可以不使用二维数组来完成,但如果您计划在某个时候拥有更多列表,那么使用数组将是一种更方便且可扩展的解决方案:

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:如何将具有相同变量类型的多个列表合并到一个列表列表中?

如何将多个值添加到python中的字典键? [关闭]

如何将一行文本添加到目录中的多个文件

如何将一个 Prometheus 服务器中的单个目标列表联合/Hashmod 到多个相同的导出器?

如何将包含数组中的值的熊猫列扩展到多列?