如何让用户从C#中的数组中写入对象名?

如何让用户从C#中的数组中写入对象名?,c#,arrays,object,menu,C#,Arrays,Object,Menu,很抱歉,我的问题是,我试图在这里查找这个问题,但所有问题都超出了我的技能水平 基本上,我首先要向用户显示对象数组的内容。 之后,用户将从数组中写下名称,程序将这些名称复制到一个大小相等的空对象数组中,直到数组满为止 这就是我的类对象的外观: public class MyClass //Edit for better clarity { private string name; private int price; private string type; Public stri

很抱歉,我的问题是,我试图在这里查找这个问题,但所有问题都超出了我的技能水平

基本上,我首先要向用户显示对象数组的内容。 之后,用户将从数组中写下名称,程序将这些名称复制到一个大小相等的空对象数组中,直到数组满为止

这就是我的类对象的外观:

public class MyClass //Edit for better clarity
{
  private string name;
  private int price;
  private string type;

 Public string Name
  {
   get {return name;}
   set {name = value;}
  }

 public int Price
  {
   get {return price;}
   set {price = value;}
  }

 public string Type
  {
   get {return type;}
   set {type = value;}
  }

 public MyClass(string _name, int _price, string _type)
 {
    name = _name;
    price = _price;
    type = _type;
 }

}
这就是我分配一个新类并创建对象的地方

public class Inventory
{   

    Myclass[] alternative = new MyClass[5]; // From this will be copied
    MyClass[] storage = new MyClass[5]; //And here it will be copied to

那么,如何最好地在对象名称中创建一个用户类型,然后将其复制到另一个数组并存储它?

如果我理解您的问题,您希望通过对象的适当名称获取对象

首先,您不应该在类中使用此名称,因为
Object
是来自系统名称空间的类

第二,既然你说你是乞丐,我就给你一个提示: 您可以使用自动属性,而不是声明一个私有字段和一个只获取/设置它而不执行特殊操作的属性。我建议你查一下

好的,现在来回答你的问题:(我将把
对象
重命名为
一个对象

anObject[]alternative=新的anObject[5];//将从中复制
anObject[]存储=新的anObject[5]//在这里,它将被复制到
/*显示替代对象阵列(通过循环)*/
int-storageIndex=0;
//得到名字
字符串userInput=Console.ReadLine();//或者用你想要的任何其他方式
//迭代初始值
for(int i=0;i

此代码会将另一个对象放入
存储器
。您现在所要做的就是迭代任意次数。

对于自定义类,您不应该使用名称
Object
:这非常令人困惑。您对
的意思是什么?如何最好地在Object name
中键入用户
Console.ReadLine()?
TextBox
?@JeroenvanLangen是,最好通过Console.ReadLine()执行。我意识到我的类名“object”也很糟糕。我把它作为一个例子,因为我的实际项目在我自己的语言中有其他名称,所以我想我把它们改成英语,效果很好。这个新值是否会保存到我的Inventory类中的其他方法中?例如“删除项目”或“显示项目”?谢谢你的提示。@MasterKjK,我不确定我是否正确理解了你的问题。如果您询问其他功能是否能够访问此阵列,简短的回答是“是”。为此,需要声明“存储”全局或将该数组作为参数传递给其他函数。您还应该注意所有这些,我建议您阅读参考与值类型。我不想表现得粗鲁,但我强烈建议你买一本关于编程的好书,因为你的基础似乎很薄弱。
        anObject[] alternative = new anObject[5]; // From this will be copied
        anObject[] storage = new anObject[5]; //And here it will be copied to

        /* display the alternative anObject array (via loop)*/

        int storageIndex = 0;

        // Get the name
        string userInput = Console.ReadLine(); // Or use any other way you want

        // Iterate over initial aray
        for (int i = 0; i < alternative.Length; i++)
        {
            if(alternative != null) // Make sure it exists
            {
                if (userInput == alternative[i].Name)
                    storage[storageIndex++] = alternative[i];
            }
        }