我需要從源序列提取所有負子序列。例如,我有:如何使用LINQ提取所有負子序列
{-2,-2,5,9,1,-6,-7,-2,5,11,-2}
在結果我想這些序列:
{-2,-2},{-6,-7,-2}和{-2}
是否有可能使用來解決任務LINQ?
我需要從源序列提取所有負子序列。例如,我有:如何使用LINQ提取所有負子序列
{-2,-2,5,9,1,-6,-7,-2,5,11,-2}
在結果我想這些序列:
{-2,-2},{-6,-7,-2}和{-2}
是否有可能使用來解決任務LINQ?
您可以使用鍵變量來區分哪些是負數。
var list = new[] { -2, -2, 5, 9, 1, -6, -7, -2, 5, 11, -2 };
var key = 1;
var arr = list.Select(x => new { x, key = x < 0 ? key : (key++ * 0) })
.Where(x => x.key > 0)
.GroupBy(x => x.key)
.Select(g => g.Select(x => x.x).ToArray())
.ToArray();
沒有Where
,GroupBy
和Select
,結果會是這樣的:
然後,我們只需要通過鑰匙只需要積極的關鍵,他們組,只需要值。
輸出
{ -2, -2 }
{ -6, -7, -2 }
{ -2 }
xv是什麼 – 2014-10-01 04:50:29
對不起,截圖使用v作爲匿名中的屬性名類型,然後我改變它到x – tsuta 2014-10-01 04:51:22
雅得到了那裏是xx不是xv rgt – 2014-10-01 04:51:42
我解決了使用循環任務。不幸的是,我沒有任何想法,我可以如何使用LINQ來解決它:( – elias 2014-10-01 04:32:03
@EhsanSajjad:爲什麼? – jgauffin 2014-10-01 04:44:50
@elias:如果你不知道如何解決它,你爲什麼要使用LINQ?機會是你不會是能夠在以後讀取代碼,這反過來又使它更難以維護它。當性能不成問題時,總是選擇最可讀的方法。 – jgauffin 2014-10-01 04:46:34