如何解决通过根据条件排除特定数据来过滤数据
我想检查基于trackId和InUse属性的列表中的记录,因为我想要具有Inuse属性= false的唯一数据,但我想排除Track =“ S”的记录,如何排除该情况,所以我的情况不检查具有Track =“ S”的记录,因为SidList也包含带有track =“ S”的记录。以下是我的情况
if (SidList.Any(q => q.TrackId == item.TrackId && q.InUse == true))
{
//Not unique logic goes here
}
我尝试了这种情况,但是没有用
if (SidList.Any(q => q.TrackId == item.TrackId && q.InUse == true && !q.Track.Contains('S')))
{
}
解决方法
var filteredList = SidList.Where(q => q.TrackId == item.TrackId && q.InUse && !q.Track.Contains('S'))
foreach ( var filteredElement in filteredList)
{
// not unique action goes here
}
,
string.Contains
区分大小写。如果Track
包含小写字母s
的数据,则语句!q.Track.Contains('S')
将返回true。
如果要忽略大小写,请进行如下更改:
!q.Track.Contains('S',StringComparison.InvariantCultureIgnoreCase)
这是整个工作示例:
型号:
public class TrackModel
{
public int TrackId { get; set; }
public bool InUse { get; set; }
public string Track { get; set; }
}
控制器:
var SidList = new List<TrackModel>() {
new TrackModel(){TrackId=1,InUse=false,Track="dfdfds"}
};
if (SidList.Any(q => q.TrackId == 1 && q.InUse == false&& !q.Track.Contains('S',StringComparison.InvariantCultureIgnoreCase)))
{
//...
}
结果:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。