0

クラスの学生がいます:

public class Student
    {
        public string Name { get; set; }
        public string Age { get; set; }
        public Student()
        {
        }
        public List<Student> getData()
        {
            List<Student> st = new List<Student> 
            {
                new Student{Name="Pham Nguyen",Age = "22"},
                new Student{Name="Phi Diep",Age = "22"},
                new Student{Name="Khang Tran",Age = "28"},
                new Student{Name="Trong Khoa",Age = "28"},
                new Student{Name="Quan Huy",Age = "28"},
                new Student{Name="Huy Chau",Age = "28"},
                new Student{Name="Hien Nguyen",Age = "28"},
                new Student{Name="Minh Sang",Age = "28"},
            };
            return st;
        }        
    }

このクラスでデータを取得するにはどうすればよいですか? (つまり、例: Name="Minh Sang",Age = "28" を表示したい)。

この質問について申し訳ありません。しかし、どこにあるかわかりません。

皆さんありがとう

4

5 に答える 5

2

あなたはlinqを使うことができます:

Student st = new Student();

var getStudent = from a in st.getData()
                      where a.Age == "28" & a.Name == "Minh Sang"
                      select a;

MessageBox.Show(getStudent.First().Age);
MessageBox.Show(getStudent.First().Name);
于 2012-04-24T00:26:14.737 に答える
0

デバッガーに表示するDebuggerDisplay属性を探しているのではないでしょうか。

[DebuggerDisplay("Name = {name}, Age={age}")]
public class Student {....}

したがって、Studentタイプのアイテムにカーソルを合わせると、希望どおりに表示されます...

于 2012-04-24T00:31:26.623 に答える
0

編集 1: これらのメソッドをクラスに追加します。

public Student getStudent(int age, string name)
{
    return this.getData().Find(s => Convert.ToInt32(s.Age) == age && s.Name.Equals(name));
}

public Student getByIndex(int index)
{
    Student s = null;
    // maxIndex will be: 7
    // your array goes from 0 to 7
    int maxIndex = this.getData().Count() - 1;
    // If your index does not exceed the elements of the array:
    if (index <= maxIndex)
        s  = this.getData()[index];
    return s;
}
  • 将来的intに評価する必要がある場合は、年齢を に変換します。><

編集 2: 次に、次のようなメソッドを呼び出します。

    Student st = new Student();
    // s1 and s2 will return null if no result found.
    Student s1 = st.getStudent(28, "Minh Sang");
    Student s2 = st.getByIndex(7);

    if (s1 != null)
        Console.WriteLine(s1.Age);
        Console.WriteLine(s1.Name);
    if (s2 != null)
        Console.WriteLine(s2.Age);
        Console.WriteLine(s2.Name);
于 2012-04-24T00:46:14.517 に答える
0

getData() を呼び出して、学生のリストを取得します。

foreach ループでリストを反復処理します。

ループ内で、生徒の名前と年齢を出力します。

于 2012-04-24T00:15:30.687 に答える
0

List.Find メソッドを見てください。

http://msdn.microsoft.com/en-us/library/x0b5b5bc.aspx

次に、新しいメソッドを実装してみてください。

public Student GetStudent(string name, int age)
于 2012-04-24T00:11:16.147 に答える