我正在查詢對象列表。使用Linq選擇數據時生成蘭特數的調用方法
其中一些對象具有可能具有空值的propertie startTime。
對於那些我想生成一個隨機數的情況。對於其他情況下,我想獲得當前時間和相應的項目開始時間
var data = List.Select(e => new myCustomItem
{
Item = e,
TimeDistance = (e.StartTime.HasValue ? (e.StartTime.Value - DateTime.Now).TotalMinutes : RandomNumber(-5000, 5000))
})
.OrderBy(e => e.TimeDistance)
.ToList();
這是應該有一個空值,每個結果被調用的函數之間的不同。
private int RandomNumber(int min, int max)
{
Random random = new Random();
return random.Next(min, max);
}
問題是,所有的結果都是reciving相同的值。
對於其他已分配startDate(非null)的人員,它正在執行計算。
不要在每次調用生成'Random'的新實例,只能創建一個和重新使用。 – CodesInChaos 2013-02-20 10:57:22
如果兩個選項都不爲空,它們如何接收'null'? – Andrey 2013-02-20 10:59:01
錯誤!請參閱編輯 – Lothre1 2013-02-20 10:59:49