2

フォームのリストがあります:

List<Form> xxx = new List<Form>(); 

次のような特定の名前で識別されるフォームが含まれているかどうかを確認するにはどうすればよいですか。

xxx.Contains()
4

6 に答える 6

1

FindAll 関数を使用してみる

List<Form> xxx = new List<Form>();
int count = xxx.FindAll(x => x.Name.Equals("YourFormName")).Count();
于 2012-06-13T09:46:09.720 に答える
0
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 ステートメントに含める必要があることを忘れないでください。

于 2012-06-13T09:43:27.017 に答える
0

何をしているのかを実際に示したわけではありませんが、これはあなたがすべきことです:

ではContains、指定したインスタンスがリストにあるかどうかのみを確認できます。代わりに、Enumerable.Anyメソッドを使用して任意の述語をチェックできます。

using System.Linq;

// ...

xxx.Any(item => item.Name == yourDesiredName);
于 2012-06-13T09:44:58.670 に答える
0

次のLINQ 式を試してください。

var forms = from form in FormList  
            where form.Name == "A_FORM_NAME"
            select form;
于 2012-06-13T09:47:06.680 に答える
0

リストをループしてForm.Name、検索用語に最初に一致するものを返すことができます。

foreach (Form form in xxx) 
{
    if (form.Name == "Whatever") 
    {
        return form.Name;
    }
}
于 2012-06-13T10:49:40.277 に答える
-3

各フォームを他のフォームから定義するプロパティをフォームごとに配置しないのはなぜですか。

次に、フォームインスタンスごとにこのプロパティを確認できます

于 2012-06-13T09:47:18.990 に答える