我有一个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
答案 0 :(得分:58)
您可以使用SkipWhile
和TakeWhile
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
}
}