我有一个字符串列表,例如(C#):
new List<string> { "string1", null, null "string2", "string3", null, null, null }
我有很多这样的人,都使用不同数量的字符串和null,其中每个字符串可以位于不同的位置,并且每个列表的列表长度都不相同,也不一定是字符串列表。
我如何删除最后一个字符串之后,最后一个非null值之后的其余null值,并保持它们之间和前面的null值?
谢谢!
/弗雷德曼
答案 0 :(得分:6)
从最后一项到开头检查您的列表,并删除空值,直到达到非空值为止:
List<string> list = new List<string> { "string1", null, null "string2", "string3", null, null, null };
for(int i=list.Count - 1; i>=0; i--)
{
if(list[i]==null) list.RemoveAt(i);
else break;
}
答案 1 :(得分:-1)
Linq方式:
int position = list.IndexOf(
list.Where(x =>x!=null).OrderByDesc.FirstOrDefault());
return position == list.Count -1 ? list: list.RemoveRange(position+1, list.Count - 1);