Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将VBNet LiNQ转换为C_C#_Linq - Fatal编程技术网

C# 将VBNet LiNQ转换为C

C# 将VBNet LiNQ转换为C,c#,linq,C#,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.

如何将其转换为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/

我认为这相当于:

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

完全一样,只是有点不同

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

确保在名称空间之前有这个

using System.Linq;
然后使用

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

我是一个VB爱好者,正在慢慢地迁移到C。当我使用您的代码时,出现了一个错误,错误是“System.Data.DataRowCollection”不包含“Cast”的定义和最佳扩展方法重载“System.Data.EnumerablerRowCollectionExtensions.CastSystem.Data.Enumera”‌​bleRowCollection“”具有一些无效参数