フォームのリストがあります:
List<Form> xxx = new List<Form>();
次のような特定の名前で識別されるフォームが含まれているかどうかを確認するにはどうすればよいですか。
xxx.Contains()
FindAll 関数を使用してみる
List<Form> xxx = new List<Form>();
int count = xxx.FindAll(x => x.Name.Equals("YourFormName")).Count();
var result = list.Where(r => r.Name == "YourName").ToList();
編集:(codesparkleによる)
名前を持つフォームがフォームのリストに存在するかどうかを確認しているため、結果の数を取得して、それが 0 より大きいかどうかを確認できます。
if(result.Count > 0)
{
//Form found in the list
}
あなたの場合のより良いアプローチは、Enumerable.Anyを使用することです
できるよ:
if (list.Any(r => r.Name == "YourName"))
{
//Form found in the list
}
System.Linq;
using ステートメントに含める必要があることを忘れないでください。
何をしているのかを実際に示したわけではありませんが、これはあなたがすべきことです:
ではContains
、指定したインスタンスがリストにあるかどうかのみを確認できます。代わりに、Enumerable.Any
メソッドを使用して任意の述語をチェックできます。
using System.Linq;
// ...
xxx.Any(item => item.Name == yourDesiredName);
次のLINQ 式を試してください。
var forms = from form in FormList
where form.Name == "A_FORM_NAME"
select form;
リストをループしてForm.Name
、検索用語に最初に一致するものを返すことができます。
foreach (Form form in xxx)
{
if (form.Name == "Whatever")
{
return form.Name;
}
}
各フォームを他のフォームから定義するプロパティをフォームごとに配置しないのはなぜですか。
次に、フォームインスタンスごとにこのプロパティを確認できます