我本來這個代碼,我誤以爲會做什麼,我也想:如何從c#中的第二個項目開始獲取新數組?
string firstArg = args[0];
string[] otherArgs = args.Except(new string[] { args[0] }).ToArray();
但是,它似乎是。除方法刪除重複。所以如果我要通過參數a b c c
,otherArgs
的結果將是b c
而不是b c c
。
那麼我怎樣才能得到一個新的數組從第二個元素向前?
我本來這個代碼,我誤以爲會做什麼,我也想:如何從c#中的第二個項目開始獲取新數組?
string firstArg = args[0];
string[] otherArgs = args.Except(new string[] { args[0] }).ToArray();
但是,它似乎是。除方法刪除重複。所以如果我要通過參數a b c c
,otherArgs
的結果將是b c
而不是b c c
。
那麼我怎樣才能得到一個新的數組從第二個元素向前?
使用Skip
方法:
var otherArgs = args.Skip(1).ToArray();
使用LINQ,因爲它似乎你是從我的頭頂:
string[] otherArgs = args.skip(1).ToArray();
如果你沒有一記desination陣列:
string[] otherArgs = args.Skip(1).ToArray();
如果你這樣做:
Array.Copy(args, 1, otherArgs, 0, args.Length - 1);
您也可以使用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);
}
}
}
感謝 - 我對面張貼這個問題後跌跌撞撞的第一件事! – Damovisa