2016-08-10 5 views
0

私はMicrosoftのヘルプセンターからコピーしたLINQクエリをテストするための基本データベース用の単純なクラスを作成しましたが、私には間違いがあります。エラーは、xは現在のコンテキストに存在しないと述べました。「x in collection」からLINQ文を正しく実装するにはどうすればよいですか?

クラス例:

public class Student 
{ 
    public string First { get; set; } 
    public string Last { get; set; } 
    public int ID { get; set; } 
    public List<int> Scores; 

    List<Student> students = new List<Student> { 
     new Student {First="Svetlana", Last="Omelchenko", ID=111, Scores= new List<int> {97, 92, 81, 60}}, 
     new Student {First="Claire", Last="O'Donnell", ID=112, Scores= new List<int> {75, 84, 91, 39}}, 
     new Student {First="Sven", Last="Mortensen", ID=113, Scores= new List<int> {88, 94, 65, 91}}, 
     new Student {First="Cesar", Last="Garcia", ID=114, Scores= new List<int> {97, 89, 85, 82}}, 
     new Student {First="Debra", Last="Garcia", ID=115, Scores= new List<int> {35, 72, 91, 70}}, 
     new Student {First="Fadi", Last="Fakhouri", ID=116, Scores= new List<int> {99, 86, 90, 94}}, 
     new Student {First="Hanying", Last="Feng", ID=117, Scores= new List<int> {93, 92, 80, 87}}, 
     new Student {First="Hugo", Last="Garcia", ID=118, Scores= new List<int> {92, 90, 83, 78}}, 
     new Student {First="Lance", Last="Tucker", ID=119, Scores= new List<int> {68, 79, 88, 92}}, 
     new Student {First="Terry", Last="Adams", ID=120, Scores= new List<int> {99, 82, 81, 79}}, 
     new Student {First="Eugene", Last="Zabokritski", ID=121, Scores= new List<int> {96, 85, 91, 60}}, 
     new Student {First="Michael", Last="Tucker", ID=122, Scores= new List<int> {94, 92, 91, 91} } 
    }; 
} 

問合せ文:

IEnumerable<Student> studentQuery = 
      from student in **students** this is the error that the compiler told me 'does not exist in the current context' 
      where student.Scores[0] > 90 
      select student; 
+3

Studentクラス内のクエリですか? 'students'のリストはプライベートであるからです。 – Mephy

+0

クラス内部で同じクラスのコンストラクタを呼び出すと無限になります。 –

答えて

1

私はあなたがこのようにしたい信じ:

public class Student 
{ 
    public string First { get; set; } 
    public string Last { get; set; } 
    public int ID { get; set; } 
    public List<int> Scores; 
} 

List<Student> students = new List<Student> { 
    new Student {First="Svetlana", Last="Omelchenko", ID=111, Scores= new List<int> {97, 92, 81, 60}}, 
    new Student {First="Claire", Last="O'Donnell", ID=112, Scores= new List<int> {75, 84, 91, 39}}, 
    new Student {First="Sven", Last="Mortensen", ID=113, Scores= new List<int> {88, 94, 65, 91}}, 
    new Student {First="Cesar", Last="Garcia", ID=114, Scores= new List<int> {97, 89, 85, 82}}, 
    new Student {First="Debra", Last="Garcia", ID=115, Scores= new List<int> {35, 72, 91, 70}}, 
    new Student {First="Fadi", Last="Fakhouri", ID=116, Scores= new List<int> {99, 86, 90, 94}}, 
    new Student {First="Hanying", Last="Feng", ID=117, Scores= new List<int> {93, 92, 80, 87}}, 
    new Student {First="Hugo", Last="Garcia", ID=118, Scores= new List<int> {92, 90, 83, 78}}, 
    new Student {First="Lance", Last="Tucker", ID=119, Scores= new List<int> {68, 79, 88, 92}}, 
    new Student {First="Terry", Last="Adams", ID=120, Scores= new List<int> {99, 82, 81, 79}}, 
    new Student {First="Eugene", Last="Zabokritski", ID=121, Scores= new List<int> {96, 85, 91, 60}}, 
    new Student {First="Michael", Last="Tucker", ID=122, Scores= new List<int> {94, 92, 91, 91} } 
}; 

IEnumerable<Student> studentQuery = 
     from student in students 
     where student.Scores[0] > 90 
     select student; 
関連する問題