我將數據從SQL Server數據庫抓取到DataTable中,該數據表使用AsEnumerable進行轉換,然後使用一系列Linq語句進行分離。我的最終目標是採取這些Linq查詢,併爲我生成一個HashTable。因此,而不是匿名類型:是否有可能用Linq查詢中的多個鍵填充HashTable?
var facebookPosts
= from f in results.AsEnumerable()
where f.GetInt("SocialMediaTypeID").Equals(
(int) SocialMediaRecordType.FacebookPost)
select new {
Headline = f.GetString("Headline"),
Parameters = new Parameters(f.GetString("Parameters")),
SocialMediaUserID = f.GetLong("SocialMediaUserID"),
SocialMediaRecordID = f.GetLong("SocialMediaRecordID"),
GravityScore = f.GetFloat("GravityScore"),
NewsDate = f.GetDateTime("NewsDate", false),
Template = "Facebook"
};
我可以做這樣的事情:
var facebookPosts1
= from f in results.AsEnumerable()
where f.GetInt("SocialMediaTypeID").Equals(
(int) SocialMediaRecordType.FacebookPost)
select new Hashtable {
{ "Headline", f.GetString("Headline"),
"SocialMediaUserID", f.GetLong("SocialMediaUserID"),
etc... }
};
這可能與.NET 4.0?
編輯:爲了澄清這個問題,最終我正在做的是將JSON返回給瀏覽器。我的公司創建了一個從HashTable派生的JsonObject類,這是我必須用來最終返回Json的。我想要做的是結果有創造每行一個哈希表(或JSONObject的),使用上面的例子中,一個名爲標題與f.GetString(「標題」)值的關鍵,另一個鍵名爲SocialMediaUserID,值爲f.GetLong(「SocialMediaUserID」)等。 Facebookposts最終將成爲HashTable或JsonObject的數組或IEnumerable,每個鍵都有幾個鍵/值對。如果我不能這樣做,我想我被困在做facebookPosts到我需要的適當的JsonObject結構的操縱?我確實需要明確指定名稱。
你爲什麼要尋找一個哈希表而不是字典的任何理由?你還打算明確指定名稱,還是期望它遍歷所有的字段本身?如果是後者,它將如何知道使用哪個「吸氣劑」?你正在尋找一個散列表*每行*(所以'IEnumerable')或整體?基本上,請澄清問題:) –
@Rob:您的公司是否不允許您使用JSON.NET這樣的庫將對象自動轉換爲JSON字符串? – StriplingWarrior
@StriplingWarrior:不,因爲他們已經有自己的滾動。與此同時,由於時間的原因,我使用了Reflection來提取信息並對其進行分析。 – Rob