如何在二维数组中找到 indexOf 元素?

How to find indexOf element in two-dimensional arrays?

我是 C# 的初学者,所以我不确定我使用的是不是二维数组。但无论如何它是字符串数组的列表。

List<string[]> cars = new List<string[]>();

我想知道如何使用 IndexOf 方法 如果我想调用特定索引并显示其中的数组元素?例如,我的三个文本框将以下数据设置为每个索引的 3 个元素:

车名="Audi"

型号="A3"

颜色="black"

private void button1_Click(object sender, EventArgs e)
{
    cars.Add(new string[3]);
    cars[cars.Count-1][0] = textBox1.Text;
    cars[cars.Count-1][1] = textBox2.Text;
    cars[cars.Count-1][2] = textBox3.Text;
}

因此,如果我在另一个文本框中键入任何汽车的名称(BMW、AUDI、FORD),所有相关信息(型号和颜色)都应该打印在标签上。我认为 IndexOf 方法是我在这种情况下所需要的,但我将如何针对我使用的集合类型实现它?

您在这里使用了错误的数据结构。您需要一个具有三个属性的 class,然后您可以获得一个 Cars 列表而不是 string 数组,并使用 LINQ 按特定 属性 进行搜索。

public class Car
{
    public string Brand { get; set; } 
    public string Model { get; set; }
    public string Color { get; set; }
}

var cars = new List<Car>();

cars.Add(new Car { Name = textBox1.Text, Color = textBox2.Text, Model = textBox3.Text });

按特定 Brand 搜索汽车:

var car = cars.FirstOrDefault(c => c.Brand == "BMW")
如果存在,

FirstOrDefault 将 return 第一辆符合条件的汽车,否则,它将 return 为空。

注意:为控件指定有意义的名称是一种很好的做法。例如:使用TxtBrandTxtModelTxtColor等。这样代码会更易读。