C# 调用方法时创建列表

C# 调用方法时创建列表,c#,C#,我有一个具有以下签名的方法: public void SomeMethod(int SomeInt, List<long> SomeListOfLongs) 我想创建long列表并一步调用该方法。我试过这个: SomeMethod(TheInt, new List<long>(TheLong1, TheLong2)); SomeMethod(输入,新列表(长1,长2)); 有没有办法避免直接在调用中创建新列表 谢谢。否。您将创建新列表。但这不应该引起任何问题 如果您

我有一个具有以下签名的方法:

public void SomeMethod(int SomeInt, List<long> SomeListOfLongs)
我想创建long列表并一步调用该方法。我试过这个:

SomeMethod(TheInt, new List<long>(TheLong1, TheLong2));
SomeMethod(输入,新列表(长1,长2));
有没有办法避免直接在调用中创建新列表


谢谢。

否。您将创建新列表。但这不应该引起任何问题

如果您可以控制该方法,则可以将签名更改为:

public void SomeMethod(int someInt, params long[] someArrayOfLongs)
然后,您可以使用以下代码调用该方法:

SomeMethod(TheInt, TheLong1, TheLong2);

事实上,我只是在修改代码,并发现这是可能的:

SomeMethod(TheInt, new List<long>() { TheLong1, TheLong2 });
SomeMethod(int,newlist(){TheLong1,TheLong2});
私有作废表单1\u加载(对象发送方,事件参数e)
{
调用(1,新列表{1,2,3,4});
}
无效调用(Int32 i,列表l)
{
Show((l[0]+l[1]+l[2]+l[3]).ToString());
}
我尝试了这一点,工作正常,所以使用此代码也传递列表对象。。。。。

@frenchie-我更新了答案,以防您有能力更改方法签名。好的,这是一个可行的解决方案,但我将保留创建并传递的列表中的代码;只是看起来更干净。谢谢你的回答!嘿,看看我对代码做了更多的修改!看看我的答案。我想问题是“我可以创建与方法调用内联的列表吗?”你已经发现,是的,你可以。你说“有没有一种方法可以避免直接在调用本身中创建一个新列表?”-你所做的是创建一个列表,所以这不是一个真正的答案。你最初的问题是如何在不创建新列表的情况下拨打电话。这也会创建一个新列表。不确定它是如何解决您的问题的。似乎更可能的是问题陈述错误,而不是这个答案是错误的。我应该用不同的方式陈述:“如何调用一个方法并在一行中创建一个列表”?
SomeMethod(TheInt, new List<long>() { TheLong1, TheLong2 });
    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.....