第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

LastOrDefault() 和 Last() 方法是否迭代列表中的每個(gè)元素?

LastOrDefault() 和 Last() 方法是否迭代列表中的每個(gè)元素?

C#
繁華開(kāi)滿天機(jī) 2021-10-09 10:28:15
LastOrDefault() 和 Last() 方法是否迭代列表中的每個(gè)元素以找到最后一個(gè)元素?或者他們是否通過(guò)基于元素的索引進(jìn)行搜索來(lái)返回值?
查看完整描述

1 回答

?
紫衣仙女

TA貢獻(xiàn)1839條經(jīng)驗(yàn) 獲得超15個(gè)贊

如果它是一個(gè)類型,IList那么不,它不會(huì)迭代每個(gè)元素,因?yàn)檫@會(huì)非常低效。


這就是他們所做的:


public static TSource Last<TSource>(this IEnumerable<TSource> source) {

        if (source == null) throw Error.ArgumentNull("source");

        IList<TSource> list = source as IList<TSource>;

        if (list != null) {

            int count = list.Count;

            if (count > 0) return list[count - 1];

        }

        else {

            using (IEnumerator<TSource> e = source.GetEnumerator()) {

                if (e.MoveNext()) {

                    TSource result;

                    do {

                        result = e.Current;

                    } while (e.MoveNext());

                    return result;

                }

            }

        }

        throw Error.NoElements();

    }

和LastOrDefault:


public static TSource LastOrDefault<TSource>(this IEnumerable<TSource> source) {

            if (source == null) throw Error.ArgumentNull("source");

            IList<TSource> list = source as IList<TSource>;

            if (list != null) {

                int count = list.Count;

                if (count > 0) return list[count - 1];

            }

            else {

                using (IEnumerator<TSource> e = source.GetEnumerator()) {

                    if (e.MoveNext()) {

                        TSource result;

                        do {

                            result = e.Current;

                        } while (e.MoveNext());

                        return result;

                    }

                }

            }

            return default(TSource);

}

請(qǐng)注意,由于每種方法都有幾個(gè)重載,我在上面只展示了其中一個(gè),但是如果您對(duì)其他方法感興趣


查看完整回答
反對(duì) 回復(fù) 2021-10-09
  • 1 回答
  • 0 關(guān)注
  • 188 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)