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

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

使用LINQ將集合拆分為‘N’部件?

使用LINQ將集合拆分為‘N’部件?

ABOUTYOU 2019-07-15 15:27:12
使用LINQ將集合拆分為‘N’部件?有什么好辦法把一個(gè)集合分割成n和LINQ的零件?當(dāng)然也不一定均衡。也就是說(shuō),我想將集合劃分為子集合,每個(gè)子集合都包含元素的子集,其中最后一個(gè)集合可以是粗糙的。
查看完整描述

3 回答

?
婷婷同學(xué)_

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

純Linq和最簡(jiǎn)單的解決方案如下所示。

static class LinqExtensions{
    public static IEnumerable<IEnumerable<T>> Split<T>(this IEnumerable<T> list, int parts)
    {
        int i = 0;
        var splits = from item in list
                     group item by i++ % parts into part                     select part.AsEnumerable();
        return splits;
    }}


查看完整回答
反對(duì) 回復(fù) 2019-07-15
?
臨摹微笑

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

好的,我把我的帽子扔進(jìn)戒指。我的算法的優(yōu)點(diǎn)是:

  1. 沒(méi)有昂貴的乘法、除法或模運(yùn)算符
  2. 所有操作均為O(1)(見(jiàn)下文注)
  3. 為IEnumerable<>源代碼工作(不需要計(jì)數(shù)屬性)
  4. 簡(jiǎn)約

守則:

public static IEnumerable<IEnumerable<T>>
  Section<T>(this IEnumerable<T> source, int length){
  if (length <= 0)
    throw new ArgumentOutOfRangeException("length");

  var section = new List<T>(length);

  foreach (var item in source)
  {
    section.Add(item);

    if (section.Count == length)
    {
      yield return section.AsReadOnly();
      section = new List<T>(length);
    }
  }

  if (section.Count > 0)
    yield return section.AsReadOnly();}

正如在下面的評(píng)論中所指出的,這種方法實(shí)際上并沒(méi)有解決最初的問(wèn)題,即要求固定數(shù)量的大致相同長(zhǎng)度的部分。盡管如此,你仍然可以用我的方法來(lái)解決原來(lái)的問(wèn)題,你可以這樣稱(chēng)呼它:

myEnum.Section(myEnum.Count() / number_of_sections + 1)

當(dāng)以這種方式使用時(shí),該方法不再是O(1),因?yàn)閏ount()操作是O(N)。


查看完整回答
反對(duì) 回復(fù) 2019-07-15
  • 3 回答
  • 0 關(guān)注
  • 405 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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