从集合中获取一系列值

时间:2012-10-31 18:58:44

标签: c# .net linq

给出一个像这样的列表......

string[] fields = new[]
{
     "Value1", 
     "TableStart:Value2", 
     "Value3", 
     "Value4", 
     "TableEnd:Value2", 
     "Value5", 
     "Value6"
};

有没有办法可以在不编写循环的情况下检索“TableStart”和“TableEnd”语句之间的所有信息?我认为Linq可能有某种方法可以实现这一点,但我无法想出一个。

在上面的示例中,我希望列表包含“Value3”和“Value4”。

1 个答案:

答案 0 :(得分:4)

也许:

var result = fields.SkipWhile(s => !s.Contains("TableStart"))
                   .Skip(1)
                   .TakeWhile(s => !s.Contains("TableEnd"))
                   .ToList();

但我更喜欢简单的循环。