我正在爲一組文件的結果進行小型查詢。組合LINQ查詢
public class f_results
{
public String name { get; set; }
public DateTime cdate { get; set; }
public DateTime mdate { get; set; }
public DateTime adate { get; set; }
public Int64 size { get; set; }
}
我有一個用戶可以選擇他們想要的屏幕。目前,我經過一個過濾系統:
foundfiles = new BindingList<f_results>(totalresults.Find(fname.Text,true));
if (fsize.Text.Trim() != "")
{
try
{
Int64 sz = Int64.Parse(fsize.Text);
List<f_results> y = (from p in foundfiles where p.size >= sz orderby p.size descending select p ).ToList();
foundfiles = new BindingList<f_results>(y);
}
catch
{ }
}
if (adate.Text.Trim() != "")
{
try
{
List<f_results> y;
DateTime test = DateTime.Parse(adate.Text);
if ((adateop.Text) == ">")
{
y = (from p in foundfiles where p.adate >= test select p).ToList();
}
else
y = (from p in foundfiles where p.adate <= test select p).ToList();
foundfiles = new BindingList<f_results>(y);
}
catch
{ }
}
if (mdate.Text.Trim() != "")
{
try
{
List<f_results> y;
DateTime test = DateTime.Parse(mdate.Text);
if ((mdateop.Text) == ">")
{
y = (from p in foundfiles where p.mdate >= test select p).ToList();
}
else
y = (from p in foundfiles where p.mdate <= test select p).ToList();
foundfiles = new BindingList<f_results>(y);
}
catch
{ }
}
if (cdate.Text.Trim() != "")
{
try
{
List<f_results> y;
DateTime test = DateTime.Parse(cdate.Text);
if ((cdateop.Text) == ">")
{
y = (from p in foundfiles where p.cdate >= test select p).ToList();
}
else
y = (from p in foundfiles where p.cdate <= test select p).ToList();
foundfiles = new BindingList<f_results>(y);
}
catch
{ }
}
最後,我有我的結果,我希望他們的方式,但我正在尋找處理約72 TB文件數據的話,有很多的文件和大量的目錄在我的列表中(totalresults是一個類型的結果,其中包含一個文件列表(f_results)和目錄(結果)..查找然後迭代並返回一個大量的f_results列表匹配給定的正則表達式。
有沒有辦法讓我的LINQ查詢一個查詢?鑑於不是所有的選項都可以使用,例如他們可能只想要文件> x,或者因爲沒有使用..或者..等。
我確實考慮過爲測試製作標誌等等,因爲它是最重要的測試部分。是更好的方式還是更好?或者在洗滌中沒有多大關係?
要加速大輸入處理,您可以使用[Parallel LINQ(PLINQ)](http://msdn.microsoft.com/zh-cn/library/dd460688.aspx)? – sll 2012-03-21 12:39:47
也許,你有我的問題的例子答案(雖然我試圖用棍子戳它,看看我能否用其他方式嗎?) - btw連續linq顯示示例http://msdn.microsoft.com/en-我們/庫/ dd460680。aspx,它並沒有真正涵蓋實際的順序LINQ查詢的方式,這個問題是。 – BugFinder 2012-03-21 12:42:37
我已經讀過一次問題了,所以你希望能夠動態地構建單個LINQ查詢依賴於指定爲字符串的過濾器參數嗎?或者你的主要目標是什麼? – sll 2012-03-21 12:43:51