2009-12-02 30 views
3

我本來這個代碼,我誤以爲會做什麼,我也想:如何從c#中的第二個項目開始獲取新數組?

string firstArg = args[0]; 
string[] otherArgs = args.Except(new string[] { args[0] }).ToArray(); 

但是,它似乎是。除方法刪除重複。所以如果我要通過參數a b c cotherArgs的結果將是b c而不是b c c

那麼我怎樣才能得到一個新的數組從第二個元素向前?

回答

7

使用Skip方法:

var otherArgs = args.Skip(1).ToArray(); 
+0

感謝 - 我對面張貼這個問題後跌跌撞撞的第一件事! – Damovisa

2

使用LINQ,因爲它似乎你是從我的頭頂:

string[] otherArgs = args.skip(1).ToArray(); 
3

如果你沒有一記desination陣列:

string[] otherArgs = args.Skip(1).ToArray(); 

如果你這樣做:

Array.Copy(args, 1, otherArgs, 0, args.Length - 1); 
2

您也可以使用ConstrainedCopy方法。下面是一些示例代碼:

static void Main(string[] args) 
{ 
    string firstArg = args[0]; 
    Array otherArgs = new string[args.Length - 1]; 
    Array.ConstrainedCopy(args, 1, otherArgs, 0, args.Length - 1); 

    foreach (string foo in otherArgs) 
    { 
     Console.WriteLine(foo); 
    } 
} 

}

相關問題