无法分配给X因为它是'方法组'

时间:2018-03-29 11:54:39

标签: linq select

我试图在linq中练习select函数。 代码描述了包含2个数字的Pair对象。 Main正在创建一个包含2对的列表,我想选择第一个数字(n1)等于1但我得到上述错误的列表。

“pair.getN1”有编译错误。 感谢。

public class Pair
{
   private int n1;
   private int n2;

    public Pair(int n1, int n2)
    {
        this.n1 = n1;
        this.n2 = n2;
    }

    public int getN1()
    {
        return this.n1;
    }

    public static void main(String[] args)
    {
        Pair pair1 = new Pair(1, 2);
        Pair pair2 = new Pair(3, 4);

        List<Pair> pairList = new List<Pair>();
        pairList.Add(pair1);
        pairList.Add(pair2);

        var chosen = from pair in pairList
                     where pair.getN1 = 1
                     select pair;

        Console.WriteLine(chosen.getn1);
        Console.ReadLine();
    }


}

1 个答案:

答案 0 :(得分:1)

我猜你是来自VB.NET。您不希望在C#中使用=,但需要==

var chosen = from pair in pairList
             where pair.getN1() == 1
             select pair;

在VB.NET中,=可以表示分配,但也可以比较,在C#中=仅表示赋值。

要解决的另一件事是,由于getN1不是字段或属性,而是需要()的方法,因此在Vb.NET中,如果没有参数,这些是可选的。