c# – 使用linq检查记录是列表中的最后一个还是第一个
发布时间:2020-12-16 00:22:19 所属栏目:百科 来源:网络整理
导读:我有一个对象列表. 我想确定用户何时获取列表中的第一个或最后一个对象,这样我就可以禁用页面上的某些按钮. 例如,我可能有一些布尔值,如果请求的对象是列表中的最后一个或第一个,那么它将返回true,否则返回false. 任何的想法? 解决方法 你可以使用诸如的扩
我有一个对象列表.
我想确定用户何时获取列表中的第一个或最后一个对象,这样我就可以禁用页面上的某些按钮. 例如,我可能有一些布尔值,如果请求的对象是列表中的最后一个或第一个,那么它将返回true,否则返回false. 任何的想法? 解决方法
你可以使用诸如的扩展方法
public static class IEnumerableExtensions { public static bool IsLast<T>(this IEnumerable<T> items,T item) { var last = items.LastOrDefault(); if (last == null) return false; return item.Equals(last); // OR Object.ReferenceEquals(last,item) } public static bool IsFirst<T>(this IEnumerable<T> items,T item) { var first = items.FirstOrDefault(); if (first == null) return false; return item.Equals(first); } public static bool IsFirstOrLast<T>(this IEnumerable<T> items,T item) { return items.IsFirst(item) || items.IsLast(item); } } 你可以像使用它一样 IEnumerable<User> users = // something User user = // something bool isFirstOrLast = users.IsFirstOrLast(user); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |