如何在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)
{
}
}
}
我认为你可以采用的最好的方法是,使用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
}