我有一個代表每個年齡段人口(M,F)的集合。To .Take()或不.Take(),這就是問題
爲了通過時間計算人口,我必須先與女性進行計算,以便根據男性出生率的統計常數計算新生男性和女性的比例。
也就是說,我有第一個矩陣,其中包含每年年齡的男性和女性人口。現在
// Where 1 is the evaluation Id and 2009 the year I want the
// initial population information for.
IList<AnnualPopulation> initialPopulation =
LoadMatrix<AnnualPopulation>(1, 2009);
,以第一個項目女子人口中,我使用以下命令:
IList<AnnualPopulation> initialWomenPopulation = (
from w in initialPopulation
where String.Equals("F", w.Gender)
select w
).FirstOrDefault();
而且我要考慮死亡率均電流(初始年份(2009年))和我希望計劃的年份,從那裏我已經有每個年齡的死亡率。
IList<AnnualDeathRate> deathRates = LoadMatrix<AnnualDeathRate>(1, 2009)
這將加載2009年以後的每個年齡段的家庭費率。因此,爲了僅考慮2009年和2010年,假設我使用了以下Linq代碼。
AnnualDeathRate[] femaleDeathRates = (
from fdr in deathRates
where (string.Equals("F", fdr.Gender))
select fdr
).TakeWhile(dr =>
initialWomenPopulation.Year == dr.Year ||
dr.Year == initialWomenPopulation.Year + 1
).ToArray()
問題
- 難道一直最好的,如果我用了
.Take(2)
一起在dr.Year
補充where
條件? - 有沒有更好的選擇?
- 我的方法值得考慮嗎?
+1用於說明'TakeWhile'方法行爲。我會考慮使用'Take'。除了我的「Take()」問題之外,我還想向用戶保證他可以依靠「修復」索引來爲收集索引。這是一個Fortran應用程序現代化項目,用戶用於使用索引並使用多維矩陣。所以,我想我應該'OrderBy'和'Take'之後。我的邏輯聽起來不錯嗎? – 2011-03-25 22:21:43
@很抱歉,我認爲我的大腦已經檢查了一天,因爲你的問題聽起來應該是有意義的,但我無法想象你的意思。 – Davy8 2011-03-25 22:30:52