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和其他网站上找到很多关于这个的帖子。如果它们对您来说还不够,请打开另一个问题(对于这个线程来说太多了,因为我甚至不知道您想要对它进行什么排序)。