0

リストボックスに文字列を見つけるのに問題があります。私の文字列 NombreCompleto は、以前にファイル (ESSD) から読み取った 3 つの文字列で構成されています。この文字列を回復した後、この文字列がリストボックスにあるかどうかを知りたいです3 、いくつかの方法を試しましたが、うまくいかないようです。これが私のコードです。

foreach (string h in Directory.EnumerateFiles(NomDirec, "resume*"))
{
   this.listBox1.Items.Add(h);
    var NombreLinea = File.ReadLines(h);
    foreach (string item in NombreLinea)
    {
        NombreAbuscar.Add(item.Remove(item.IndexOf(':')));
        this.listBox3.Items.Add(item.Remove(item.IndexOf(':')));

}

foreach (string t in Directory.EnumerateFiles(NomDirec, "ESSD1*"))
{
    string[] Nombre = File.ReadLines(t).ElementAtOrDefault(6).Split(':');
    string[] ApellidoPat = File.ReadLines(t).ElementAtOrDefault(7).Split(':');
    string[] ApellidoMat = File.ReadLines(t).ElementAtOrDefault(8).Split(':');
    string NombreCompleto = ApellidoPat[1]+" "+ ApellidoMat[1] +","+" "+ Nombre[1];
    string Nom2 = NombreCompleto.ToString();

    int index = listBox3.FindString(Nom2);
    if (index != -1)
    {
        this.listBox1.Items.Add(t);
        MessageBox.Show("Find It");
    }
    else { MessageBox.Show("Not Found :@"); }
}
4

3 に答える 3

1

このコードで試すことができます-based on Linq operator Where, ...

var selectedItems = from li in listBox3.Items
                    where li.Text == Nom2
                    select li.Text;

if(selectedItems.Any()) 
.... 
于 2012-09-18T20:58:15.290 に答える
0

これを試してみてください:

                            int index = -1;
                            for (int i = 0; i < listBox3.Items.Count; ++i)
                               if (listBox3.Items[i].Text == Nom2) { index = i; break; }
                            if (index != -1)
                            {
                                this.listBox1.Items.Add(t);
                                MessageBox.Show("Find It");
                            }
                            else { MessageBox.Show("Not Found :@");
于 2012-09-18T21:00:24.280 に答える
0

特定の文字列がリストボックスにあるかどうかを確認するための非常に簡単な方法。

private void btnAddRecipe_Click(object sender, EventArgs e)
{
    bool DoesItemExist = false;
    string searchString = txtRecipeName.Text;
    int index = lstRecipes.FindStringExact(searchString, -1);

    if (index != -1) DoesItemExist = true;
    else DoesItemExist = false;

    if (DoesItemExist)
    {
       //do something
    }
    else
    {
        MessageBox.Show("Not found", "Message", MessageBoxButtons.RetryCancel, MessageBoxIcon.Stop);
    }

    PopulateRecipe();
}
于 2017-05-30T01:06:38.590 に答える