抓住List <string>的一部分

时间:2015-08-17 10:10:12

标签: c# linq

我有一个List,看起来像这样:

@IBAction func openSettings(sender: AnyObject) {
        var mySettings: SettingsView = SettingsView(nibName: "SettingsView", bundle: nil) /<--- Notice this "nibName" 
        var modalStyle: UIModalTransitionStyle = UIModalTransitionStyle.CoverVertical
        mySettings.modalTransitionStyle = modalStyle
        self.presentViewController(mySettings, animated: true, completion: nil)
    }

所以现在我想抓住&#34;关键字&#34;之间的所有东西。和#34;另一个关键字&#34;。 也许我应该找到&#34;关键字&#34;的索引。和另外一个关键词&#34;并使用 .GetRange(),但有一种更优雅的方式来做到这一点,例如的 LINQ

3 个答案:

答案 0 :(得分:58)

您可以使用SkipWhileTakeWhile

var newList = list.SkipWhile(line => !line.Contains("keyword"))
                  .Skip(1)
                  .TakeWhile(line => !line.Contains("another keyword"))
                  .ToList();

答案 1 :(得分:2)

yourList.Skip(10).Take(5);

这将跳过10个项目,然后返回下一个5。

但只有在您已经知道关键字的索引时才会有效。

答案 2 :(得分:-5)

List<String> stringsColl=new List<String>();
strinsColl.Add(..some you strs);
...
foreach(var str in stringsColl)
{
  if(str.Contains("keyword")
   {
      ...do some work
   }
}