加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读