我的代码有点问题:
string[] sWords = {"Word 1", "Word2"}
foreach (string sWord in sWords)
{
Console.WriteLine(sWord);
}
如果我想要打印每个对象,这可以正常工作。
我想知道我是否可以排除数组中的第一项? 所以它只会输出“Word 2”。我知道明显的解决方案不是包括第一项,但在这种情况下我不能。
答案 0 :(得分:9)
使用LINQ to Objects,您只需使用Skip
:
foreach (string word in words.Skip(1))
{
Console.WriteLine(word);
}
答案 1 :(得分:8)
在.Net 3.5及更高版本中使用LINQ:
string[] words = {"Word 1", "Word2"}
foreach (string word in words.Skip(1))
{
Console.WriteLine(word);
}
请注意,您必须在文件顶部添加using System.Linq;
语句,因为Skip
是一种扩展方法。
另一种选择是使用常规for循环:
for( int x = 1; x < words.Length; ++x )
Console.WriteLine(words[x]);
我强烈不鼓励在.Net中使用类似匈牙利语的前缀作为变量名。
答案 2 :(得分:7)
您可以改为使用for
循环:
string[] sWords = {"Word 1", "Word2"};
var len = sWords.Length;
for (int i = 1; i < len; i++)
{
Console.WriteLine(sWords[i]);
}
答案 3 :(得分:3)
你可以做到
string[] sWords = {"Word 1", "Word2"};
for(int i=1; i<sWords.Length; i++)
{
Console.WriteLine(sWord[i]);
}