2012-11-20 46 views
0

我在linq中的字符串比較查詢感到困擾。我想statusid作爲我想要的字符串說「草稿」statustype。下面是查詢在linq中的字符串比較錯誤結果

var result = (from Roaster_RequestStatus status in statuses 
         where status.StatusName.Equals("Draft") 
         select status).ToList<Roaster_RequestStatus>(); 

result顯示0計數,甚至我的列表statuses包含StatusName「徵求意見稿」還 我試圖下面的查詢這爲i提供值0。

var i = (from Roaster_RequestStatus status in statuses 
         where status.StatusName.Equals("Draft") 
         select status.StatusID).Distinct().FirstOrDefault(); 

如果有任何語法或邏輯錯誤,請幫忙出現在代碼

+1

嘗試微調狀態的名字,可領導或尾隨空格。試試'status.StatusName.Trim()。Equals(「草稿」)',也要確保兩者的情況相同。你可以試試。 'status.StatusName.Equals(「Draft」,StringComparison.StringComparer.InvariantCultureIgnoreCase)' – Habib

+0

@ Habib:沒有空格 –

+0

你能告訴我們樣本數據和你的類定義嗎? –

回答

1

這將工作: -

var result = (from Roaster_RequestStatus status in statuses 
         where status.StatusName.Contains("Draft") 
         select status).ToList<Roaster_RequestStatus>();