我正在检索列表中的很多信息,链接到数据库.
我想为连接到网站的人创建一组字符串.
我用它来测试...但这不是动态的,所以它真的很糟糕:
string strgroupids = "6";
Run Code Online (Sandbox Code Playgroud)
我现在想用这个.但返回的字符串是这样的1,2,3,4,5,
groupIds.ForEach((g) =>
{
strgroupids = strgroupids + g.ToString() + ",";
strgroupids.TrimEnd(',');
});
strgroupids.TrimEnd(new char[] { ',' });
Run Code Online (Sandbox Code Playgroud)
我想删除,后,5但它肯定不起作用..有人能帮帮我吗?
sll*_*sll 569
strgroupids = strgroupids.Remove(strgroupids.Length - 1);
Run Code Online (Sandbox Code Playgroud)
String.Remove(Int32)已:
从指定位置开始并从最后一个位置开始删除此字符串中的所有字符
Øyv*_*hen 83
怎么样这样做呢
strgroupids = string.Join( ",", groupIds );
Run Code Online (Sandbox Code Playgroud)
一个很多清洁.
它将所有元素追加里面groupIds有','每个之间,但它不会把一个','结尾.
Dod*_*bit 10
在 C# 8中引入了范围和索引,为我们提供了一个新的更简洁的解决方案:
strgroupids = strgroupids[..^1];
Run Code Online (Sandbox Code Playgroud)
添加扩展方法.
public static string RemoveLast(this string text, string character)
{
if(text.Length < 1) return text;
return text.Remove(text.ToString().LastIndexOf(character), character.Length);
}
Run Code Online (Sandbox Code Playgroud)
然后使用:
yourString.RemoveLast(",");
Run Code Online (Sandbox Code Playgroud)
删除任何尾随逗号:
while (strgroupids.EndsWith(","))
strgroupids = strgroupids.Substring(0, strgroupids.Length - 1);
Run Code Online (Sandbox Code Playgroud)
这是倒退的,你编写了首先添加逗号的代码.你应该使用string.Join(",",g),假设g是a string[].给它一个更好的名字g!
sll 解决方案的补充:最好修剪字符串,以防末尾有一些空格。
strgroupids = strgroupids.Remove(strgroupids.Trim().Length - 1);
Run Code Online (Sandbox Code Playgroud)