私はStudentというクラスを持っています。このクラスには名前と、この問題にはあまり関係のないいくつかの等級が含まれています。 Listオブジェクトから彼の名前で1人の生徒を選ぶにはどうすればいいですか?カスタムクラスのリストからオブジェクトを取得するにはどうすればよいですか?
答えて
students.FirstOrDefault(s => s.Name == studentName);
生徒はリストですが、studentnameは文字列ですが、何ですか? – dvs
google 'lambda expression'と' linq query' –
List<Student> listOfStudents = new List<Student>();
// ...
// put some data to listOfStudents
// ...
var searchName = "MyName";
var singleStudent = listOfStudents.Single(s => s.name == searchName);
// or SingleOrDefault(s=>s.name == searchName)
あなたのコードによって維持されていることを、StudentList
はstudents
(学生対象)のリストになりましょう。彼/彼女の名前に基づいてFirst studentを選択したいと考えてください。あなたは、あなたに与えられた条件を満たし、最初に一致した学生のオブジェクトを与えるリスト.FirstOrDefaultを使用することができます。あなたはその名を検索テキストと同じになりますすべての学生を取得する必要がある場合は、リスト.Where()
List<student> StudentList = new List<student>();
//TODO: Populate the List here
string searchName = "luckey";
student FirstStudent = StudentList
.FirstOrDefault(x => String.Equals(searchName,
x.Name,
StringComparison.CurrentCultureIgnoreCase));
// first student whose name is luckey
List<student> searchResult = StudentList
.Where(x => String.Equals(searchName,
x.Name,
StringComparison.CurrentCultureIgnoreCase))
.ToList();
//sub list of students whose name is luckey
それを行う方法はたくさんあります。 Single
、SingleOrDefault
などのように、単一のオブジェクトを取得するには、他のLINQの方法にあります
matchedStudent = list.FirstOrDefault(s => String.Equals(inputStudentName, s.Name, StringComparison.CurrentCultureIgnoreCase));
:あなたはまた同じようLINQとFirstOrDefault
を使用することができます
List<Student> list = new List<Student>();
Student matchedStudent = null;
string inputStudentName = "SomeName";
foreach (var student in list)
{
if (String.Equals(inputStudentName, student.Name, StringComparison.CurrentCultureIgnoreCase))
{
matchedStudent = student;
break;
}
}
if (matchedStudent != null)
{
//student found
}
:最も簡単なのはのようなループを使用することになります
あなたの基準に合ったすべての生徒のコレクションを入手したい場合は、
var matchedStudentCollection = list.Where(s => String.Equals(inputStudentName, s.Name, StringComparison.CurrentCultureIgnoreCase));
ループから始めて、LINQについてもっと読むと、LINQを使用してより短い優雅なコードを書くことができます。
この場合、最も簡単な方法は上記の方法ですが、上記の方法は完璧です:) –
LINQの学習を開始したい場合は、ここから始めてください:Basic LINQ Query Operations。
s => s.Name == searchName
それは無名関数です:
var student = students.FirstOrDefault(s => s.Name == searchName);
この式は、 "ラムダ式" です。リスト内の各項目に対して呼び出されます。少し明確にするために、あなたは書くことができる
(Student s) => s.Name == searchName
がパラメータです。 students
はList<Student>
であるため、コンパイラはパラメータの型を推測できます。
通常のC#では、このように記述しますが、この種の関数定義ではローカル変数searchName
にアクセスする方法がないため、その作業を行うには不器用な作業が必要です。ラムダ式は定義されているすべてのローカル変数を「見る」ことができ、すべてを簡略化します。
function bool Predicate(Student s) {
return s.Name == searchName;
}
FirstOrDefaultはnullを返すことがあります。
var student = students.Single(s => s.Name == searchName);
:あなたが不足している学生に例外をスロー、または(学生の特定のケースでは悪いアイデアのように両方の音)冗長生徒の名前にしたい場合は
、あなたは正確に一つの試合を必要とすることができますそこにいくつかのこと、あなたはそれらすべてをしたい、
を通じて、あなたがループをできるクエリを返しますvar studentEnumeration = students.Where(s => s.Name == searchName);
可能性がある場合:
foreach (var student in studentEnumeration) {
// Rap each student on the knuckles with a ruler
}
私は、単独で使用することをお勧めしますそれは2人が同じ名字を持つことは間違いありません。 – user2366842
@ user2366842私は同意します。 –
- 1. リストのアドレスを取得するにはどうすればよいですか?
- 2. @WindowScopedでオブジェクトを取得するにはどうすればよいですか?
- 3. JSPからモデルからAngularJS変数にオブジェクトを取得するにはどうすればよいですか?
- 4. CDCオブジェクトからHDCオブジェクトを取得するにはどうすればよいですか?
- 5. カスタムクラスのオブジェクトをAndroidからJava Serverに送信するにはどうすればいいですか?
- 6. オブジェクトの中でリストを取得するにはどうすればよいですか? C#
- 7. laravelのすべてのサーバーセッションからリストを取得するにはどうすればよいですか?
- 8. FTP経由でリモートサーバからファイル名のリストを取得するにはどうすればよいですか?
- 9. aws_s3_bucket_objectデータソースを持つs3オブジェクトのリストを取得するにはどうすればよいですか?
- 10. 私のパス上のプログラムのリストをPerlから取得するにはどうすればよいですか?
- 11. 値がリストであるディクショナリキークエリからフラットテッドリストを取得するにはどうすればよいですか?
- 12. iPhoneのリソースフォルダからフォルダとファイルのリストを取得するにはどうすればよいですか?
- 13. Django QuerySetから絶対イメージのURLのリストを取得するにはどうすればよいですか?
- 14. 日付の範囲から日時のリストを取得するにはどうすればよいですか?
- 15. Gmailのユーザーからグループのリストを取得するにはどうすればよいですか?
- 16. 特定のノードからツリー祖先のリストを取得するにはどうすればよいですか?
- 17. ceylonでは、クラスオブジェクトからClassオブジェクトを取得するにはどうすればよいですか?
- 18. Spring MVC 3でコントローラのモデルからオブジェクトを取得するにはどうすればよいですか?
- 19. 複雑なタイプのリストからデータベースからオブジェクトのリストを取得するにはどうすればよいですか?
- 20. ネストされたオブジェクトから値を取得するにはどうすればよいですか?ここ
- 21. 値のリストからキーを取得するにはどうすればよいですか?
- 22. JSTLのリストから要素を取得するにはどうすればよいですか?
- 23. リストから別のアイテムを取得するにはどうすればよいですか?
- 24. pythonのmin()メソッドからリストを取得するにはどうすればよいですか?
- 25. コマンドラインからAWS EIPアドレスのリストを取得するにはどうすればよいですか?
- 26. 調査索引から用語のリストを取得するにはどうすればよいですか?
- 27. Google ChromeからWindowsプロセスのリストを取得するにはどうすればよいですか?
- 28. CSharpのリストからパーセンタイルを取得するにはどうすればよいですか?
- 29. PyQt:ユーザーからファイル名の大きなリストを取得するにはどうすればよいですか?
- 30. Wikipedia APIからタイトルと要約のリストを取得するにはどうすればよいですか?
ループを書く方法を知っていますか? –
などのように、など?ええ、私はforeachループに慣れていません。 – dvs
あなたはstudentタイプのオブジェクトのリストを持っていますか?あなたは学生クラスの名前プロパティに基づいて1つを取り出したいのですか? –