2012-02-03 6 views
3

に変換するにはどうすればこのコードをC#コードに変換できますか?VBNet LiNQをC#

Dim newArray() as String = From sRow In iDatatable.Rows.Cast(Of DataRow)() Where sRow("iType").ToString = "ST" Select CStr(sRow("iResult"))).ToArray() 

私はこのサイトを試してみましたが、それらのどれも働きました。

http://www.developerfusion.com/tools/convert/csharp-to-vb/ 
http://www.carlosag.net/Tools/CodeTranslator/ 

答えて

2

私は、これはequivelentされるだろうと考えている:

string[] newArray = iDatatable.Rows.Cast<DataRow>() 
     .Where(sRow => sRow["iType"].ToString() == "ST") 
     .Select(sRow => sRow["iResult"].ToString()) 
     .ToArray(); 
1

全く同じ、わずかな違いで。

string[] newArray = (from sRow in iDatatable.Rows.Cast<DataRow>() where sRow["iType"].ToString() == "ST" select (string)sRow["iResult"]).ToArray(); 
+0

を使用しています。あなたのコードを使用すると、エラー '\t 1' System.Data.DataRowCollection 'に' Cast 'の定義が含まれておらず、最適な拡張メソッドオーバーロード' System.Data.EnumerableRowCollectionExtensions.Cast (System.Data .Enumera bleRowCollection) '引数が無効です。 –

1

これが名前空間の前にあることを確認してください。

using System.Linq; 

、私はVBの男だとゆっくりのC#への移行

string[] newArray = iDatatable.Rows.Cast<DataRow>() 
       .Where(sRow => sRow["iType"].ToString() == "ST") 
       .Select(sRow => sRow["iResult"].ToString()) 
       .ToArray();