使用转换后的VB转换为C#代码

Shi*_*nga 2 c# vb.net datatable

我有以下VB代码:

Dim dt As DataTable = DAL.WMS_Collaboration_Fetch(0).Tables(0)

If dt.Rows.Count > 0 Then
    'Bind Dataset to Gridview
    Dim _WMS_CollaborationInfo As New WMS_CollaborationInfo
    With _WMS_CollaborationInfo
        .CollaborationName = dt.Rows(0).Item["CollaborationName").ToString
        .CollaborationID = dt.Rows(0).Item("CollaborationID").ToString
    End With
Run Code Online (Sandbox Code Playgroud)

将它转换为C#代码,如下所示:

DataTable dt = DAL.WMS_Collaboration_Fetch(0).Tables(0);

if (dt.Rows.Count > 0) {
    //Bind Dataset to Gridview
    WMS_CollaborationInfo _WMS_CollaborationInfo = new WMS_CollaborationInfo();
    {
        _WMS_CollaborationInfo.CollaborationName  = dt.Rows[0].Item["CollaborationName"].ToString;
        _WMS_CollaborationInfo.CollaborationID = dt.Rows[0].Item["CollaborationID"].ToString;
    }
Run Code Online (Sandbox Code Playgroud)

但是,我无法运行C#代码.在VB中,使用DataTable的表列只需传入列名即可访问(好吧,我对VB不太了解),例如"CollaborationID"in

dt.Rows(0).Item("CollaborationID").ToString
Run Code Online (Sandbox Code Playgroud)

请问使用DataTable从表中读取数据的C#等价物是什么?我只是说我如何重新编写我的C#代码以便它可以工作.

Ode*_*ded 5

C#中的索引器使用方括号 - [].您也不需要访问.Item:

_WMS_CollaborationInfo.CollaborationID = 
           dt.Rows[0]["CollaborationID"].ToString();
Run Code Online (Sandbox Code Playgroud)


Uli*_*ses 5

在C#中,方法和索引器之间存在区别.第一个使用括号,第二个使用括号.从VB中移动时,我花了一些时间来掌握,两者都使用括号.

尝试:

dt.Rows[0].Item["CollaborationID"].ToString()
Run Code Online (Sandbox Code Playgroud)

编辑:VB.NET和C#比较

我曾经一直参考这个备忘单,查看Arrays部分:http: //www.harding.edu/fmccown/vbnet_csharp_comparison.html