从VB转换的C#没有';不起作用
本文关键字:不起作用 没有 VB 转换 | 更新日期: 2023-09-27 18:29:59
我使用代码转换器从VB转到C#,在C#中出现错误。特别是Item
和string.join(",", Flop.ToArray)
上的错误。Error说它不包含item
的定义,但它可以在VB.中工作
VB
Dim Flop As New List(Of String)
For x As Integer = 0 To Dataset9.Tables(0).Rows.Count - 1 'ROWS
Flop.Add(Dataset9.Tables(0).Rows(x).Item("Id"))
Next
strAllRoleNames = String.Join(",", Flop.ToArray)
C#
List<string> Flop = new List<string>();
for (int x = 0; x <= Dataset9.Tables[0].Rows.Count - 1; x++)
{
Flop.Add(Dataset9.Tables[0].Rows[x].Item["Id"]);
}
strAllRoleNames = string.Join(",", Flop.ToArray);
试试这个:
List<string> Flop = new List<string>();
for (int x = 0; x <= Dataset9.Tables[0].Rows.Count - 1; x++)
{
Flop.Add(Dataset9.Tables[0].Rows[x]["Id"].ToString());
}
strAllRoleNames = string.Join(",", Flop.ToArray());
这里丢失了三把钥匙
- 访问行中的项时,需要使用C#默认索引器,因为C中不存在项#
- 由于行中的单元格是一个对象,并且您想要一个字符串,因此需要显式调用ToString
- 调用ToArray时,需要C中末尾的()#
尝试。。。
Flop.Add(Dataset9.Tables[0].Rows[x]["Id"].ToString());
ToArray是一种方法()
List<string> Flop = new List<string>();
for (int x = 0; x <= Dataset9.Tables[0].Rows.Count - 1; x++)
{
Flop.Add(Dataset9.Tables[0].Rows[x]["Id"]);
}
strAllRoleNames = string.Join(",", Flop.ToArray());
以更简洁的方式,您可以尝试以下内容:
strAllRoleNames = string.Join(",", Dataset9.Tables[0].AsEnumerable()
.Select(C => Convert.ToString(C["Id"]))
.ToArray());
尝试以下更改:
Dataset9.Tables[0].Rows[x].Item["Id"] => Dataset9.Tables[0].Rows[x]["Id"]
Flop.ToArray => Flop.ToArray()