在获得特定值后获取列表的一部分

时间:2016-12-13 09:14:02

标签: c#

我有一个简单的问题,我有一个清单:

List<string> test = new List<string> {"one", "two", "three", "four"}

现在我想以价值为例&#34;三&#34;并获取其后的所有元素,因此它看起来像:

List<string> test = new List<string> {"three", "four"}

但是我们不知道list end的位置,所以它可以是许多元素的列表,我们不能将end定义为const。

有可能吗?

3 个答案:

答案 0 :(得分:8)

听起来你正在寻找LINQ的if(total_deposit = 'NULL') set 0;

SkipWhile

这将跳过所有内容,直到(但不包括)&#34;三&#34;价值,然后包括其他一切。然后它再次将其转换为列表。

答案 1 :(得分:0)

这可能会为你做到这一点

self

或更好

var list2 = test.Skip(2).Take(test.Count).ToList();

如果没有LINQ,可以这样做

var list3 = test.Skip(2).ToList();

答案 2 :(得分:0)

由于您将过滤后的列表分配回初始列表,然后只需删除第一项,最多为"three"一项:

int count = test.IndexOf("three");

test.RemoveRange(0, count < 0 ? test.Count : count);

此实现不会创建其他列表,但会修改现有列表。