我有一个带有以下签名的方法:
public void SomeMethod(int SomeInt, List<long> SomeListOfLongs)
有一次,我正在调用这个方法,代码看起来有点像这样:
int TheInt = 2;
long TheLong1 = 3;
long TheLong2 = 4;
我想创建long列表并一步调用该方法。我试过这个:
SomeMethod(TheInt, new List<long>(TheLong1, TheLong2));
有没有办法避免直接在调用中创建新列表?
感谢。
答案 0 :(得分:1)
没有。您将要创建新列表。这不应该导致任何问题。
如果您可以控制该方法,则可以将签名更改为:
public void SomeMethod(int someInt, params long[] someArrayOfLongs)
然后,您可以使用以下代码调用该方法:
SomeMethod(TheInt, TheLong1, TheLong2);
答案 1 :(得分:0)
实际上,我只是在修改代码,并发现它是可能的:
SomeMethod(TheInt, new List<long>() { TheLong1, TheLong2 });
答案 2 :(得分:0)
private void Form1_Load(object sender, EventArgs e)
{
call(1, new List<long> { 1, 2, 3, 4 });
}
void call(Int32 i,List<long> l)
{
MessageBox.Show((l[0] + l[1] + l[2] + l[3]).ToString());
}
i tried this and working properly so use this code too pass the List object.....