C# 字符串尾部值don';如果最右边的值为null,则不需要分隔符
我试图实现的目标是,如果我有一个字符串列表,那么我就说:C# 字符串尾部值don';如果最右边的值为null,则不需要分隔符,c#,list,C#,List,我试图实现的目标是,如果我有一个字符串列表,那么我就说: {"test","","data","","123","44"} 这应该由一个字符连接: test::data::123:44 但是如果最后的列表是空的,不要给它加分隔符 {"test","","data","","",""} 应该是: test::data {"test","","","","",""} test {"test","","","","","44"} test::::44 应该是: test::data
{"test","","data","","123","44"}
这应该由一个字符连接:
test::data::123:44
但是如果最后的列表是空的,不要给它加分隔符
{"test","","data","","",""}
应该是:
test::data
{"test","","","","",""}
test
{"test","","","","","44"}
test::::44
应该是:
test::data
{"test","","","","",""}
test
{"test","","","","","44"}
test::::44
应该是:
test::data
{"test","","","","",""}
test
{"test","","","","","44"}
test::::44
但是,列表的长度可以不同,这会增加另一个复杂程度。首先,使用数组:
test = test.Where(x => !string.IsNullOrEmpty(x)).ToArray();
其中“test”是您的数组
然后:
编辑:
如果您通过拆分另一个字符串来获得字符串数组,请考虑以下内容:
string[] strs = myString.split(someDelimeter, StringSplitOptions.RemoveEmptyEntries);
首先,使用阵列:
test = test.Where(x => !string.IsNullOrEmpty(x)).ToArray();
其中“test”是您的数组
然后:
编辑:
如果您通过拆分另一个字符串来获得字符串数组,请考虑以下内容:
string[] strs = myString.split(someDelimeter, StringSplitOptions.RemoveEmptyEntries);
首先确定您想要的最后一个元素,然后像平常一样分割列表并加入:
var lastElementIndex = strings.Select((s, index) => string.IsNullOrEmpty(s) ? -1 : index).Max();
var prefix = strings.Take(lastElementIndex + 1);
var result = string.Join(":", prefix);
首先确定您想要的最后一个元素,然后像平常一样分割列表并加入:
var lastElementIndex = strings.Select((s, index) => string.IsNullOrEmpty(s) ? -1 : index).Max();
var prefix = strings.Take(lastElementIndex + 1);
var result = string.Join(":", prefix);
只需从列表中排除尾随的空元素
Count
,然后使用以下方法排除剩余的空元素:
只需从列表中排除尾随的空元素
Count
,然后使用以下方法排除剩余的空元素:
可能的重复不是我要找的,因为我不希望它忽略空字符串我希望它只忽略尾随的空字符串可能的重复不是我要找的,因为我不想让它忽略空字符串,我只想让它忽略尾随的空字符串我的输入不是一个JSON值,它只是一个字符串列表,对于EDIFACT D96a,尾随值不需要分隔符,如果最右边的值为空,我的输入不是一个JSON值,它只是一个字符串列表,对于EDIFACT D96a,如果最右边的值是null@Amit正确的。但是问题被标记为
list
,而不是linq
。这提醒了我,这有一个特定的列表方法,所以谢谢:)@Amit Right。但是问题被标记为list
,而不是linq
。这提醒了我,这有一个特定的列表方法,所以谢谢:)