将字符附加到列表字符串

Posted

技术标签:

【中文标题】将字符附加到列表字符串【英文标题】:Appending characters to a List string 【发布时间】:2012-12-05 14:26:53 【问题描述】:

我的应用程序中有一个可选的自定义前缀和后缀,我想将它们添加到字符串列表中的每个项目中。我已经尝试了以下所有方法,但没有一个有效。有人能指出我正确的方向吗?

List<string> myList = new List<string> "dog", "cat", "pig", "bird" ;

string prefix = "my ";
string suffix = " sucks!";

StringBuilder sb = new StringBuilder();
sb.Append(suffix);
sb.Insert(0, prefix);
MyList = sb.ToString();  //This gives me red squigglies under sb.ToString();

我也试过了:

myList = myList.Join(x => prefix + x + suffix).ToList();  //Red squigglies

和:

sortBox1.Join(prefix + sortBox1 + suffix).ToList();  //Red squigglies

我哪里错了?

【问题讨论】:

【参考方案1】:

目前还不清楚你为什么在这里使用StringBuilder,或者你为什么要尝试加入。听起来像你想要的:

var suckingList = myList.Select(x => "my " + x + " sucks")
                        .ToList();

这是使用 LINQ 对列表中的每个项目执行投影的绝对正常方式。

【讨论】:

干得好,乔恩。谢谢。我将如何制作前缀 = "?显然是 'prefix = """;'不工作。 @Jeagr:你会逃脱它:"\"" + x @Jeagr:已经是了。 msmvps.com/blogs/jon_skeet/archive/2011/02/17/… 也可以在表达式中使用$"my x sucks" 以获得更好的可读性 @ageroh:你现在可以 - 但这个答案是在 2012 年写的。我不会复习我在 C# 6 出现之前写的所有答案,只是为了引入字符串插值...... 【参考方案2】:
List<string> myList = new List<string> "dog", "cat", "pig", "bird" ;
List<string> myNewList = new List<string>();

string prefix = "my ";
string suffix = " sucks!";

foreach(string s in myList)

     myNewList.Add(string.Format("012", prefix, s, suffix);

myNewList 现在包含正确的数据。

【讨论】:

LINQ 是一种更简单的方法 - 当您只是连接三个字符串时,使用 string.Format 毫无意义。 (哦,把addformat 改成大写字母……) 只是在考虑 string.Format 以及是否需要它。无论如何,倾向于将其用作默认值。我认为 foreach 更具描述性,但您正确的 LINQ 更简洁 @TimSchmelter:但这不是这里发生的事情 - 它只是将它们全部连接起来。我认为这里的string.Format("012", prefix, s, suffix 比直接的prefix + s + suffix 可读性差。

以上是关于将字符附加到列表字符串的主要内容,如果未能解决你的问题,请参考以下文章

如何将唯一数字附加到字符串列表

避免 FOR 循环将多个字符串附加到列表中

如何将字符串附加到字典中的列表

Python:将 a 附加到字典中的列表

无法将字符串附加到字典键

从字符串中获取特定字符并将它们附加到列表中