0

このようなリストを考えると...

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

ループを記述せずに、「TableStart」ステートメントと「TableEnd」ステートメントの間のすべての情報を取得する方法はありますか? Linq にはこれを達成する方法があるのではないかと思いましたが、思いつきませんでした。

上記の例では、「Value3」と「Value4」を含むリストが期待されます。

4

1 に答える 1

4

多分:

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

しかし、私は代わりに単純なループを好みます。

于 2012-10-31T19:02:41.447 に答える