c#搜索特定int值的对象数组,然后返回该对象的所有数据

所以我创建了一个包含字符串,整数和浮点数的类.

然后我在这些类型的main中声明了一个数组,并将该类型的对象读入其中

现在我需要搜索该数组以获取特定值,如果该值匹配,则返回整个对象

我该怎么做呢?

真的很难过

public class cdClass
{
    private static string artist = null;
    private static string genre = null;
    private static string cdTitle = null;
    private static float mSRP;
    private static int stock;
    private static int upc = 0;

    //Following functions are public member methods
    public void read_cd(string artist, string genre, string cdTitle, float mSRP, int stock, int upc)
    {
        //cdClass cd = null ;
        System.Console.WriteLine("Enter Artist Name: ");
        artist = Console.ReadLine();

        System.Console.WriteLine("Enter CD Title: ");
        cdTitle = Console.ReadLine();

        System.Console.WriteLine("Enter Genre Type: ");
        genre = Console.ReadLine();

        System.Console.WriteLine("Enter Manufacturers Suggested Retal Price: ");
        mSRP = float.Parse(Console.ReadLine());

        System.Console.WriteLine("Enter UPC Number: ");
        upc = int.Parse(Console.ReadLine());

        System.Console.WriteLine("Enter Stock: ");
        stock = int.Parse(Console.ReadLine());

        //return cd;
    }

    public  int get_upc()
    {
        return upc;
    }

主要:

//Follwoing cod will initialize an array of Cd's
cdClass[] cdArray = new cdClass[20];

float taxRate = 0;
do
{
    int i = 0;
    cdClass current_cd = new cdClass();
    current_cd.read_cd(artist, genre, cdTitle, mSRP, stock, upc);
    cdArray[i] = current_cd;
    i++;

} while (businesslogic.question() != 'Y');

buyer = inputfunctions.buyer();
int UPC = inputfunctions.get_upc();

for (int i = 0; i < 20; i++)
{
    if (cdArray[i].get_upc() == UPC)
最佳答案
您可以使用简单的LINQ扩展方法来搜索对象.

var foundItem = myArray.SingleOrDefault(item => item.intProperty == someValue);

这是一些让你更熟悉的MSDN information regarding LINQ.

编辑发布的代码.

我首先要说的是,你看起来像是从一个不同的语言中引入了一些范例,比如使用getter方法的java而不是使用.NET样式属性,这是你可能想要研究的东西.但我已经根据您的具体情况制作了一个更适合的代码示例.

你可以更换块

for (int i = 0; i < 20; i++)
{
    if (cdArray[i].get_upc() == UPC)

cdClass foundCD = cdArray.SingleOrDefault(cd => cd.get_upc() == UPC);

或者使用BrokenGlass建议的Array.Find()方法.

cdClass foundCD = Array.Find(cdArray, delegate(cdClass cd) { return cd.get_upc() == UPC); });

转载注明原文:c#搜索特定int值的对象数组,然后返回该对象的所有数据 - 代码日志