如何可以將兩組不同(第一typeof years == IEnumerable<string>
和第二typeof occurs = IEnumerable<int>
)序列引入1個序列由下一個關鍵:如果在occurs
數目是相同的,那麼爲了通過years
,否則爲了通過occurs
僅使用LINQ
?如何在LINQ中分組2個不同的序列?
我有下面的方式將這些序列:
var years = some_strings.Select(x => x.Split(' ')[1]);
var occurs = years.Select(x => years.Count(e => e == x));
所以變量years
只包含字符串憑藉多年和occurs
包含在第一序列相同年數。
我無法理解LINQ
中的這些技巧。
我會這樣做嗎?
occurs.GroupBy(x => x ???
我應該在哪裏使用第二個序列? 也許我可以在1個查詢中得到這些序列,然後處理它?
UPD
我修改了2個1查詢使用匿名類(?):
some_strings.Select(x => x.Split(' ')[1]).
GroupBy(x => x).
Select(x => new {num = x.Key, count = x.Count() })
因此,有多年,無論是在它發生。
我試圖讓下一個字符串:
1 1990
1 1991
1 1992
2 1967
2 1968
5 2010
...
現在,具有需要的值的查詢,我怎麼可以排序像前款規定?
不能確定什麼是你想實現的,因爲沒有代碼,但提到的聲明可以合併如「無功富= some_strings.Split('')[1]。選擇(x => x ......'根據您需要執行投射的返回類型,您也可以.Cast <>來投射最終輸出。 – Vishal
那麼你的編輯中的查詢就是你想要的?在這種情況下,您應該將其作爲答案發布,而不是作爲對問題的修改。如果沒有,你需要解釋你有什麼問題。 – Servy
@Servy我更新了我的問題,我希望現在有點更清楚 – zerospiel