我有一个List,其中包含一个逗号分隔的字符串值,用于保存标记。
我想根据此逗号分隔字符串中的值过滤List。
List中逗号分隔的字符串通常如下所示:
list.Tags = "Tag 1, Tag2, Another Tag"
我已尝试过以下操作,但接收的对象引用未设置为实例错误。 NextDate只是一个返回列表中相应项的子句,现在需要找到匹配的“标签”。我只会搜索1个标签。
list = list.Where(x => x.NextDate >= todaysDate).Where(x => x.Tags.Contains("Tag 1")).ToList();
如何过滤我的列表中的某个标记?
[重复的问题没有回答我的问题,我正在尝试使用正确的语法来过滤我的列表,这个问题没有用。我的问题与Linq语法有关]
答案 0 :(得分:1)
添加空检查:
list =
list.Where(
x => null != x.NextDate &&
x.NextDate >= todaysDate &&
null != x.Tags &&
x.Tags.Contains("Tag 1"))
.ToList();
如果您想确保匹配确切的标签(即您有标签1和标签11):
list =
list.Where(
x => null != x.NextDate &&
x.NextDate >= todaysDate &&
null != x.Tags &&
x.Tags.Split.Contains("Tag 1"))
.ToList();