如何在c#中不使用循环从字符串数组中获取每个项

本文关键字:获取 字符串 数组 循环 | 更新日期: 2023-09-27 18:16:00

我使用3个字符串数组。我想获得每个项目对应的索引,即如果itnme将有第二个项目,那么我需要从其他两个字符串数组,如数量,价格获得第二个项目。这怎么可能?

    string[] itmnme= new string[0] { };
    string[] price= new string[0] { };
    string[] qntity= new string[0] { };
foreach (string iname in itmnme)
  {
    foreach (string qnt in qntity)
      {
        foreach (string prc in price)
          {
          }
      }
  }

如何在c#中不使用循环从字符串数组中获取每个项

我认为你可以采用的最好的方法是,使用List Of Classes:

 public class Product
    {
        public string itmnme;
        public string price;
        public string qntity;
    }

您的列表将像:

 List<Product> productList = new List<Product>{new Product()
                       {itmnme="item1",price="20",qntity="1"}, 
                       new Product(){itmnme="item2",price="220",qntity="3"} };

这样你就可以迭代List并轻松地从List中获取值:

        foreach (var item in productList)
        {
            string itmnme=item.itmnme;
            string price = item.price;
            string qntity=item.qntity; 
        }

假设所有数组的大小相同,可以使用如下代码:

for(int i=0; i<itmnme.Length; i++)
{
    var name = itmnme[i];
    var quantity = qntity[i];
    var price = price[i];
    // do what you need with these values
}

听起来您需要从每个数组中检索数据,给定一个位置,是这样吗?如果是这样,您可以使用如下方法:

public string[] getItemAtPosition(int position)
{
    string[] dataResult = new string[0]{};
    string itmnmeItem = itmnme[position];
    string qntityItem = qntity[position];
    string priceItem = price[position];
    dataResult.add(itmnmeItem);
    dataResult.add(qntityItem);
    dataResult.add(priceItem);
    return dataResult;
    //now this array contains data from each array at the specified position
}