0

の検索に問題がありますArraylist。配列リストには、ロゴへの画像パスやチーム名など、多数のチームに関するさまざまな情報が格納されます。StreamReader

Textboxユーザーにチーム名などの Windows フォームから何かを入力してもらいたいのですが、その結果、プログラムは配列リストでその文字列を検索し、検索されたチームの情報が画面に読み込まれる別のフォームを開きます。Form.Load手順_

簡単に言えば。

private void btn_Search_Click(object sender, EventArgs e)
{
   //what code do I write here?
}

現在のコーディングの知識については、ここでは少し深すぎるかもしれないことを理解していますので、助けていただければ幸いです。

編集: 残念ながら、配列リストにある必要があります。ご不便をおかけして申し訳ありません。

4

3 に答える 3

4

LINQ を使用できる場合:

string nameToMatch = "Tigers"; //can you tell who's from Michigan?
List<Team> teams = new ArrayList<Team>();
//fill team data here

Team selected = teams.FirstOrDefault(t => t.TeamName.Equals(nameToMatch, StringComparison.OrdinalIgnoreCase));

このようなものがうまくいくはずです。(これはテキストと完全に一致しますが、検索では大文字と小文字を区別しません。他のオプションについては、こちらを参照してください。)

すべての「部分一致」のリストに一致させたい場合は、代わりに次のようにすることができます。

List<Team> matchedTeams = teams.Select(t => t.TeamName.Contains(nameToMatch));

列挙型の値を取る、Contains の拡張オーバーロードについては、こちらを参照してください。StringComparison

于 2013-04-12T19:54:36.990 に答える
0

次のようなコードを使用して、配列リストを埋めることができます。

    // ArrayList class object
    ArrayList arrlist = new ArrayList();

    // add items to arrlist collection using Add method
    arrlist.Add("item 1");
    arrlist.Add("item 2");
    arrlist.Add("item 3");
    arrlist.Add("item 4");
    arrlist.Add("item 5");

このようないくつかのコードを使用して、配列リストを検索します

string teamName= this.txtTeamName.Text;
// for loop to get items stored at each index of arrlist collection
for (int i = 0; i < arrlist.Count; i++)
{
    if(arrlist[i].toString()==teamName)
      // open a new form for show the found team details
}

「チームの詳細」フォームの cunstractor を変更して「チーム名」を取得することをお勧めします。

frmTeamDetails(team myteam)

次に、上記の FOR ステートメントで次のコードを使用します。

frmTeamDetals frm=new frmTeamDetals(teamName);
frm.ShowDialog();
于 2013-04-12T20:37:32.433 に答える