2013-07-01 68 views
1

我想C#轉換爲vb.net在WCF,下面給出的是代碼轉換C#來vb.net問題

var user = from u in users 
       where u.Key == Id 
       select u.Value; 

行使用轉換工具我得到以下結果

Dim user = _Where u.Key = Id 

,但同時我得到

我在做什麼正確的錯誤「預期語句結束」?有人能幫我解決這個問題嗎?

+0

讀取轉換錯誤的方法,去除答案 – Sayse

+0

你錯過了查詢的一部分 - 你用什麼轉換工具? – Tim

+0

你可以嘗試在線翻譯工具轉換http://www.developerfusion.com/tools/convert/csharp-to-vb/ –

回答

3

這是大致相同的使用查詢語法真的:

Dim users = From user In users 
      Where user.Key = Id 
      Select user 

Select是退化的,如果你願意,你可以使用替代方法的語法:

users.Where(Function(user) user.Key = ID) 
+0

也許這只是因爲它已經過去了我的睡前時間,但你是什麼意思「退化」呢? – Tim

+0

如果使用Key,我認爲'FirstOrDefault'是更好的做法。 – James

+0

@ByteBlast:非常感謝:)你讓我的一天 – jeev

0
Dim user = From u in users Where u.Key = id 
      Select u.Value 

你也可以使用lambda。

Dim user = users.FirstOrDefault(Function(u)u.Key = id) 

在Lambda中,我使用FirstOrDefault,因爲您使用的是鍵。這意味着當找到第一個記錄時,沒有額外的時間浪費在搜索集合的其餘部分。如果沒有發現,也意味着user將是null。如果它只是一個Where子句,您可能會最終得到一個空集合。

+0

VB.NET不是C#... –

+1

這是VB.NET! – James

+1

這就是VB.NET - 關鍵字只需要大寫。 – Tim

0

試試這個:

Dim user = From u in users 
Where u.Key = Id 
Select u.Value 
+0

你不需要下劃線查詢語法; p –

+0

@ByteBlast哦對。瞭解更多C#VB.NET,謝謝。# –