Csharp/C#教程:从字符串末尾删除多个char类型分享


从字符串末尾删除多个char类型

我有一个构建地址字段的循环,其中一些字段在字符串的末尾可能是空的

List list = new List(); //list can contain any number of values, some of which might be "" (empty string) string returnValue = ""; for (int iRow = 1; iRow <= list.Count; iRow++) returnValue += String.Format("{0}, ", list[iRow]); returnValue = returnValue.Trim(); 

我的输出是

 asd, aaa, qwe, 123123, , , , , 

如何从字符串中删除尾随“,”?

 returnValue = returnValue.TrimEnd(' ', ','); 

您还应该避免在您的情况下使用字符串,而是使用StringBuilder。 避免使用感知格式 – 只需列出[iRow]是一个更好的选择。

尝试这样的事情:

 string result = string.Join(", ", list.Where(s => !string.IsNullOrEmpty(s)).ToArray()); 

string的TrimEnd静态方法允许指定应修剪哪些字符。

但是,在你的情况下,检查for循环是否有空槽是有意义的,并在最后将一个结果字符串与string.Join(字符串分隔符,字符串[]部分)放在一起

如果要删除添加的内容,请不要首先添加它们。 此外, StringBuilder类型更适合连接多个字符串,因为它具有更高的内存效率。

 StringBuilder sb = new StringBuilder(); for (int i = 0; i < list.Count; i++) { string rowValue = list[iRow]; if (!string.IsNullOrEmpty(rowValue)) { sb.Append(rowValue); sb.Append(", "); } } // use sb.ToString() to obtain result 

我讨厌做出假设,但我会因为看起来你想保留“差距”直到你走到尽头,在这种情况下你应该使用TrimEnd。 如果没有,则使用任何一个其他选项以避免首先添加空值。

更准确地说,如果您的输出看起来像:

asd,aaa,qwe,123123 ,,, somevalue ,,

然后你必须循环并使用TrimEnd。

否则,如果您可以折叠字段,则预先排除容器。

asd,aaa,qwe,123123,somevalue

试试这个:

 List list = new List( new string[]{"asd", "aaa", "qwe", "123123", "", null, "", null, ""}); return String.Join(", ", list.Where(i => !String.IsNullOrEmpty(i)).ToArray()); 

我意识到这是非常难以理解的并且浪费但是(没有linq):

上述就是C#学习教程:从字符串末尾删除多个char类型分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注---计算机技术网(www.ctvol.com)!

 return string.Join(" ,",string.Join(", ",list.ToArray()).Split(", ", StringSplitOptions.RemoveEmptyEntries)); 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1007658.html

(0)
上一篇 2021年12月29日
下一篇 2021年12月29日

精彩推荐