gpt4 book ai didi

c#,获取当前T在List中的索引

转载 作者:行者123 更新时间:2023-12-02 00:31:06 25 4
gpt4 key购买 nike

我搜索了很多,我可能偶然发现了类似的东西,但我仍然不清楚,因为我是 c# 新手。

我想从 List< Tline > 中获取对象 Tline 的当前索引我知道我可以简单地用 int i 进行迭代。但我不明白为什么或如何将其作为我所在的当前项目的索引而无需搜索任何内容。

Tline 是这样的

public class Tline
{
public string Cd_m { get; set; }
public string cd_d { get; set; }
public string cd_c { get; set; }
...
}

我的问题在这里(用箭头指示)

  class ACCS 
{
internal void DBwrite(List<Tline> imoprtati)
{
OleDbConnection myAccessConn = null;

string sFld = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
string dbName = "EDIM1.mdb";
dbName = Path.Combine(sFld, dbName);
string accessConn = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}", dbName);

string sqlQuery = "INSERT INTO DOTes (`id`,`cd_m`,`cd_d`,`cd_c`,`nume`) values (?,?,?,?,?)";

myAccessConn = new OleDbConnection(accessConn);
int i = 2;
foreach (var insT in imoprtati)
{
using (OleDbCommand cmd = new OleDbCommand(sqlQuery, myAccessConn))
{
cmd.Connection.Open();

cmd.Parameters.AddWithValue("@id", i.ToString());
cmd.Parameters.AddWithValue("@cd_m", "2018");
cmd.Parameters.AddWithValue("@cd_d", "BO");
cmd.Parameters.AddWithValue("@cd_c", "C00128");

// Show current Tline Index ↓↓↓↓↓↓↓
cmd.Parameters.AddWithValue("@nume", (imoprtati.GetEnumerator().Current)); //trying anything
cmd.ExecuteNonQuery();


cmd.Connection.Close();
i++;

}
}
}

}

最佳答案

imoprtati.GetEnumerator().Current 不起作用,因为您正在创建一个具有自己位置的单独迭代器(当前在第一项之前)。你最好的选择可能是一个简单的计数器:

int index = 0;
foreach (var insT in imoprtati) {
// your stuff here...


index++;
}

有一个包含索引的 LINQ 方法,但由于自定义结构迭代器、捕获的变量等(复杂的主题),该方法最终会降低效率。

关于c#,获取当前T在List<T>中的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54536324/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com