我试图在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();
}
}
答案 0 :(得分:1)
我猜你是来自VB.NET。您不希望在C#中使用=
,但需要==
:
var chosen = from pair in pairList
where pair.getN1() == 1
select pair;
在VB.NET中,=
可以表示分配,但也可以比较,在C#中=
仅表示赋值。
要解决的另一件事是,由于getN1
不是字段或属性,而是需要()
的方法,因此在Vb.NET中,如果没有参数,这些是可选的。