2016-06-11 103 views
-3

我有數字的整數列表從0到50組列表轉換成由列表

的索引範圍基團然後,我想有一個分組目標列表,這意味着:

這裏
group1: 1,2,3,4,5,6,7,8,9,10 
group2: 11,12,13,14,15,16,17,18,19,20 
group3: etc... ,30 
group4: etc... ,40 
group5: etc... ,50 

的groupFactor爲5

我怎樣才能小組這可能是任何數量的羣體因素我整數列表築底?

UPDATE

如果組因數6 會有一個額外的:

group6: etc... ,60 
+0

怎麼樣的結果,如果組因數6 –

+0

更新後的問題:-) – Pascal

+0

但是你說數字只能達到50.這沒有意義。我期望以六分之一的組數來表示這些組將是0-7,8-15,16-23等。 –

回答

0

你的問題有點含糊,但爲您提供的樣本,我發現這個奇特組由:)

var list = new List<int>(); 
for (int i=0; i <= 50; i++) 
{ 
    list.Add(i); 
} 
var result = list.GroupBy(n => (n-1)/10); 
+0

謝謝,作品很好,很短! – Pascal

2

令k爲你的團隊的因素。將列表成員乘以k,然後除以50,並將結果分組到結果商,從而對列表進行分組。

0

試試這個

static void Main(string[] args) 
{ 
    List<int> input = new List<int>(); 
    for (int i = 0; i <= 50; i++) 
    { 
     input.Add(i); 
    } 

    List<List<int>> output = input.Select((x, i) => new { x = x, i = (int)(x/10) }).GroupBy(y => y.i).Select(z => z.Select(a => a.x).ToList()).ToList(); 
} 
+0

我得到6組,其中第6組有一個項目是'50'。我預計第五組的最後一個項目'50'。對不起我的錯我的源列表以1開頭,不是0 ... – Pascal

+0

然後減去一個:((x - 1)/ 10) – jdweng