C# 如何在二维数组中查找indexOf元素?

C# 如何在二维数组中查找indexOf元素?,c#,arrays,multidimensional-array,collections,indexof,C#,Arrays,Multidimensional Array,Collections,Indexof,我对C#还处于初级阶段,所以我不确定我使用的是不是二维数组。但无论如何,这是一个字符串数组的列表 List<string[]> cars = new List<string[]>(); 因此,如果我在另一个文本框中键入任何汽车(宝马、奥迪、福特)的名称,所有相关信息(型号和颜色)都应打印在标签上。我认为在这种情况下,IndexOf方法是我所需要的,但是对于我使用的集合类型,我该如何实现它呢 您在这里使用了错误的数据结构。您需要一个具有三个属性的类,然后您可以有一个Car

我对C#还处于初级阶段,所以我不确定我使用的是不是二维数组。但无论如何,这是一个字符串数组的列表

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

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

您在这里使用了错误的数据结构。您需要一个具有三个属性的类,然后您可以有一个
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 });
FirstOrDefault
将返回符合条件的第一辆车(如果存在),否则将返回null


注意:给控件指定有意义的名称是一个很好的做法。例如:使用
TxtBrand
TxtModel
TxtColor
等。这样代码会更可读。

我不确定我使用的是否是二维数组。
,不,但它很接近(从数学意义上讲,它确实是二维的)。。。。在本例中,我们谈论的是数组的
列表
,它的作用是。。。。虽然我也建议使用
品牌
而不是
名称
;-)我同意,品牌比名字更有意义。我已经更新了答案,谢谢你的建议。假设我有一个“下一步”和“上一步”按钮,我需要在列表大小范围内的元素中来回移动。你的建议是什么?@CavidHummatov你的意思是要检查同一品牌的多辆车?您可以使用
Where
而不是
FirstOrDefault
,它将返回所有车辆,而不是单个车辆。你需要跟踪一个索引,按下一个时增加一个,按下一个时减少。谢谢你帮我清理它。我仍然忍不住想知道对于这种类型的集合,Indexof方法是如何实现的。你能简单地提一下那件事吗?
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 });
var car = cars.FirstOrDefault(c => c.Brand == "BMW")