显示数组ID';中的列表项名称;s c#
本文关键字:列表 ID 数组 显示 | 更新日期: 2023-09-27 18:27:28
我想简化以下过程:
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));