我正在使用以下命令将逗号分隔的字符串转换为列表。linq中的问题与逗号分隔的字符串
string productId ="1,2";
string productName = "Product1,Product2";
string prodCat = "Cat1,Cat1";
string quantity = "10,10";
string retailPrice = "12,12";
var _productId = new List<String>(productId.Trim().Split(','));
var _productName = new List<String>(productName.Trim().Split(','));
var _prodCat = new List<String>(prodCat.Trim().Split(','));
var _quantity = new List<String>(quantity.Trim().Split(','));
var _retailPrice = new List<String>(retailPrice.Trim().Split(','));
var _products = (from pi in _productId
join pro in _productName on _productId.IndexOf(pi) equals _productName.IndexOf(pro)
join pn in _prodCat on _productId.IndexOf(pi) equals _prodCat.IndexOf(pn)
join rp in _retailPrice on _productId.IndexOf(pi) equals _retailPrice.IndexOf(rp)
join q in _quantity on _productId.IndexOf(pi) equals _quantity.IndexOf(q)
where pi.Length > 0 && pro.Length > 0
select pi);
_products.Dump("Products");
上面的查询返回不同的结果:
Products
IEnumerable<String> (8 items)
1
1
1
1
1
1
1
1
但它应该是:
Products
IEnumerable<String> (2 items)
1
2
如果我在所有的字符串不同的值,我得到的实际效果。在上面的例子中,我有两个不同产品的类别,数量和价格。但是我得到了八个错误值的结果。
对此的任何线索,为什么会发生这种情况?
这个让我的工作更轻松。 – Prasad