[英]memory permutation random linq of very large list orderby
我正在對104個字符長的特定序列序列進行排列。 我使用plinq生成序列,但是沒有隨機順序,結果永遠不會復雜到無法選擇。
問題是rnd.next和guid.newguid的orderby填滿了內存,沒有返回結果。
有什么辦法可以從C#的linq模式中隨機選擇?
var query =
from sp1 in polar
...
from vp15 in polar
where GetCompressionRatio(sp1+...+vp15)>1.5
orderby rnd.Next(0, 100000000) * rnd.Next(0, 100000000)
select sp1+...+vp15;
foreach (var element in query)
{
//output
}
您正在嘗試使用同一查詢解決兩個非常不同的問題。 即使有聰明的方法,我還是建議您一次邁出一步。
首先,生成一個非隨機排列。 然后,對先前的結果應用一些隨機置換算法。 您可以嘗試非常簡單的Knuth Shuffle 。
您的意圖將更加清楚,分解可以為您提供測試和調試方面的顯着優勢。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.