我在的形式獲取數據:foreach所IEnumerable的<dynamic>類型的數據
[0]: { rkey = "100asb", pkey = "100ap0", ckey = {1/6/2013 3:28:09 AM} }
[1]: { rkey = "yxq4c", pkey = "100iis", ckey = {1/6/2013 6:38:48 PM} }
.
.
.
我不得不寫訪問的值rkey
,pkey
和ckey
另一種方法。不幸的是,我不能以線性ForEach
或Parallel.ForEach
訪問它們。我搜索了,但我還沒有找到解決方案來訪問我的參數。有人建議將其轉換爲Dictionary
,但我不確定這是否是一條好路徑。它必須比這更簡單。
,我已編寫的代碼是這樣的:
var films = myrollup.GetCompletedMovies(dtstart, dtend).Result;
using (var session = factory.OpenSession())
{
using (var transaction = session.BeginTransaction())
{
Parallel.ForEach(films, currentFilm =>
{
dynamic f = currentFilm;
lock (myrollup)
{
var user = User.GetAsync(f.pkey).Result;
var record = new FilmAnalytics()
{
UserID = currentFilm.pkey,
FilmID = currentFilm.rkey,
UserName = user.FirstName,
UserLastName = user.LastName,
UserAlias = user.Alias,
UserEmail = user.Email,
UserFacebook = user.FbEmail,
Dateofcompletion = currentFilm.ckey
};
session.SaveOrUpdate(record);
}
});
transaction.Commit();
}
}
可變films
產生IEnumerable<dynamic>
類型的數據。
你可以發佈你已經試過的代碼嗎? – DiskJunky 2013-02-15 20:43:11
什麼是阻止你創建一個合適的類來保存這些值而不是依賴動態? – 2013-02-15 20:44:04
你認爲'dynamic'比使用'Dictionary'更簡單嗎?這表明你沒有正確理解「動態」實際上在做多少事情,幾乎肯定不應該使用它。 – Servy 2013-02-15 20:45:09