我从db获取表标签.
该表具有列ID和TagName
我正在做这样的事情来得到一个字符串列表:
var taglist = Model.Tags.Select(x => x.TagName.ToLower()).ToArray();
Run Code Online (Sandbox Code Playgroud)
然后我正在与另一个字符串数组进行比较,以获得两者中出现的字符串:
var intersectList = tagList.Intersect(anotherList);
Run Code Online (Sandbox Code Playgroud)
我有我的列表,但现在我还想要交叉列表中与tagList相对应的每个项目的ID.(可以只是一个int数组)
任何人都可以帮助一个好方法来做到这一点?
不要使用intersect,它只适用于相同类型的集合.您可以进行简单的连接或其他形式的过滤.最简单的方法是将字符串列表放入a HashSet并按包含TagName该集合中s 的标记进行过滤.这样,您可以保持标记不被投影,以便保留其ID和其他属性.
var stringSet = new HashSet<string>(anotherList);
var tagList = Model.Tags.Where(t => stringSet.Contains(t.TagName)).ToList();
Run Code Online (Sandbox Code Playgroud)
并将它们放入列表中.除非您特别需要一个数组(用于需要数组的方法),否则不要将它们抛入数组中.
| 归档时间: |
|
| 查看次数: |
3559 次 |
| 最近记录: |