[英]Display List Item name from array ID's c#
我想简化以下过程:
var _cat = new Categories();
_cat.GetCategories();
检索:
ID Name
1 Men
2 Women
3 Unisex
4 Access
5 Kids
string[] prodCat = p.ProductCategory.Split(','); // Contains value 2,3,5
并输出到我的标签:
foreach (Category c in _cat)
{
foreach (string pr in prodCat)
{
if (pr.Length > 0 && Convert.ToInt32(pr) == c.Id)
{
lblSaveCat.Text += c.CatName + " <br />";
}
}
}
我想可能有一种比通过linq循环更有效的方法来执行此操作?
您可以使用string.Join
:
var prodCat = p.ProductCategory.Split(',').Select(int.Parse).ToArray();
lblSaveCat.Text = string.Join(" <br />", _cats.Where(x => prodCat.Contains(x.Id)).Select(c => c.CatName));
顺便说一句,如果要在每个值之后换行,则需要使用\\r\\n
或Environment.NewLine
。 除非您的标签显示html,否则<br />
将不起作用。
效果很好,因为在prodCat末尾有一个逗号,所以必须做一些小的编辑:
var _cat = new Categories();
_cat.GetCategories();
p.ProductCategory = p.ProductCategory + "0";
var prodCat = p.ProductCategory.Split(',').Select(int.Parse).ToArray();
lblSaveCat.Text = string.Join("\r\n", _cat.Where(x => prodCat.Contains(x.Id)).Select(c => c.CatName));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.