我是C#的初学者,所以我不确定它是否可以用作二维数组。但是无论如何,它是字符串数组的列表。
List<string[]> cars = new List<string[]>();
我想知道如果要调用特定索引并在其中显示数组元素,该如何使用 IndexOf方法?例如,我的三个文本框将以下数据设置为每个索引的3个元素:
CarName =“ Audi”
Model =“ A3”
color =“黑色”
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;
}
因此,如果我在另一个文本框中键入任何汽车的名称(宝马,奥迪,福特),则所有相关信息(型号和颜色)应打印在标签上。我认为在这种情况下,我需要 IndexOf 方法,但是如何针对所使用的集合类型实现该方法?
答案 0 :(得分:4)
您在这里使用了错误的数据结构。您需要一个具有三个属性的类,然后可以有一个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
将返回符合条件的第一辆汽车(如果存在),否则将返回null。
注意:最好给控件赋予有意义的名称。例如:使用TxtBrand
,TxtModel
,TxtColor
等。这样,代码将更具可读性。