C# 类c的搜索数组#

C# 类c的搜索数组#,c#,arrays,class,C#,Arrays,Class,我有一节课是这样的 public class Bottle { private string Brand = ""; private string Beverage = ""; private int Price =0; public Bottle(string _Brand, string _Beverage, int _Price) { Brand = _Brand; Beverage = _Beverage;

我有一节课是这样的

public class Bottle
{
    private string Brand = "";
    private string Beverage = "";
    private int Price =0;


    public Bottle(string _Brand, string _Beverage, int _Price)
    {
        Brand = _Brand;
        Beverage = _Beverage;
        Price =_Price; 
    }
}
然后我做了一个数组:

 public Bottle[] Soda = new Bottle[25];
在菜单中,用户可以选择按1、2或3选择要添加的苏打水。 例如,如果选择“1”,则可以在数组中选择一个“位置”来存储苏打水。像这样:

Soda[userPlacement]= new Bottle("Cola","Soda",10);
我的问题是:

例如,如何在该数组中搜索Cola

我尝试了
Array.find
Array.indexOf
但都不起作用。

您可以像这样使用LINQ:

Bottle cola = Soda.FirstOrDefault(b => b.Brand == "Cola");
这将返回数组中的第一个元素,该元素的
品牌
“Cola”
,如果没有则返回
null


一个简单的直接版本也可以为您提供索引:

int colaIndex = -1;
for (int index = 0; index; index ++)
    if (Soda[index].Brand == "Cola")
    {
        colaIndex = index;
        break;
    }

if (colaIndex < 0)
    // no cola found
else
   // Soda[colaIndex] is your cola.
intcolaindex=-1;
for(int index=0;index;index++)
if(苏打[指数]。品牌==“可乐”)
{
colaIndex=指数;
打破
}
if(colaIndex<0)
//没有找到可乐
其他的
//苏打[可乐]是你的可乐。

注意:正如Sinatr正确指出的那样,您需要将
品牌
属性
设置为公共
,以便可以通过此代码访问它(或者您可以将此代码放在
瓶子
类中,以便它可以访问
私有
字段)。

您可以像这样使用LINQ:

Bottle cola = Soda.FirstOrDefault(b => b.Brand == "Cola");
这将返回数组中的第一个元素,该元素的
品牌
“Cola”
,如果没有则返回
null


一个简单的直接版本也可以为您提供索引:

int colaIndex = -1;
for (int index = 0; index; index ++)
    if (Soda[index].Brand == "Cola")
    {
        colaIndex = index;
        break;
    }

if (colaIndex < 0)
    // no cola found
else
   // Soda[colaIndex] is your cola.
intcolaindex=-1;
for(int index=0;index;index++)
if(苏打[指数]。品牌==“可乐”)
{
colaIndex=指数;
打破
}
if(colaIndex<0)
//没有找到可乐
其他的
//苏打[可乐]是你的可乐。


注意:正如Sinatr正确指出的那样,您需要将
品牌
属性
公开
,以便可以通过此代码访问它(或者您可以将此代码放在
瓶子
类中,以便它可以访问
私有
字段)。

查看使用linq的简单性:参见答案。没有linq的基本思想是:迭代数组项(
for
foreach
),并检查每个项的
饮料
字段值(请将其设置为公共属性)。请参阅(参数名称中的下划线为kek)。您尝试了哪些“不起作用”的代码?通过修复您当前的尝试,您可能会学到更多。请看使用linq的简单性:参见答案。没有linq的基本思想是:迭代数组项(
for
foreach
),并检查每个项的
饮料
字段值(请将其设置为公共属性)。请参阅(参数名称中的下划线为kek)。您尝试了哪些“不起作用”的代码?通过修复当前尝试,您可能会学到更多注意:
品牌
是私人领域(除非代码属于
瓶子
的成员)。谢谢@RenéVogt。是否也可以对数组进行排序?如果是,怎么做?@user6144256是的,您可以对其进行排序。数组有
Sort
方法,也有
OrderBy
linq方法。你会在StackOverflow和其他网站上找到很多关于这个的帖子。如果它们不足以满足您的需要,请打开另一个问题(对于此线程来说太多了,因为我甚至不知道您要对其进行什么排序)。注意:
品牌
是私有字段(除非代码属于
瓶子
的成员)。谢谢@RenéVogt。是否也可以对数组进行排序?如果是,怎么做?@user6144256是的,您可以对其进行排序。数组有
Sort
方法,也有
OrderBy
linq方法。你会在StackOverflow和其他网站上找到很多关于这个的帖子。如果它们对您来说还不够,请打开另一个问题(对于这个线程来说太多了,因为我甚至不知道您想要对它进行什么排序)。