【问题标题】:How to replace strings in a List如何替换列表中的字符串
【发布时间】:2017-03-25 20:58:17
【问题描述】:

我从 .csv 文件中获取值并将它们放入 datagridview,但我想在填充我的 datagridview 之前替换一些值。

这是我的 .csv 文件的屏幕:

这是我尝试做的代码:

string FileName = @"C:\mydir\testcsv.csv";
    OleDbConnection conn = new OleDbConnection
           ("Provider=Microsoft.Jet.OleDb.4.0; Data Source = " +
             Path.GetDirectoryName(FileName) +
             "; Extended Properties = \"Text;HDR=YES;FMT=Delimited\"");

    conn.Open();

    OleDbDataAdapter adapter = new OleDbDataAdapter
           ("SELECT * FROM " + Path.GetFileName(FileName), conn);

    DataSet ds = new DataSet("Temp");
    adapter.Fill(ds);

    conn.Close();

    DataTable dt = ds.Tables[0];

    List<HT> matchhtList = new List<HT>();
    matchhtList = (from DataRow dr in dt.Rows
                   select new HT()
                   {
                       Home = dr["Home"].ToString(),
                       Away = dr["Away"].ToString(),
                       ScoreHome = dr["ScoreHome"].ToString(),
                       ScoreAway = dr["ScoreAway"].ToString(),
                       Segno = dr["Segno"].ToString(),
                       odd1 = dr["odd1"].ToString(),
                       oddx = dr["oddx"].ToString(),
                       odd2 = dr["odd2"].ToString()

                   }).ToList();

    StringBuilder mystring = new StringBuilder("matchhtList");
    mystring = mystring.Replace("Rosenborg", "Rihanna")
           .Replace("Start", "Stop")
           .Replace("Brann", "Circus");

    dataGridView2.DataSource = mystring;

如果我的问题不清楚,请在输入“-1”之前告诉我,我会尝试更好地解释我的问题。非常感谢!

【问题讨论】:

  • 您可能因为“但它不起作用”而投了反对票。究竟是什么不工作?是否有例外等。这是缺少的细节。
  • 碰巧的是,您将数据源设置为字符串 - 而不是您的实际数据......
  • 好的,我犯了一个错误,但请不要对我投反对票,只是为了这次。我删除了错误的问题...
  • 我没有投反对票——这不是我的风格 :) 只是给出了你可能投反对票的理由。
  • 谢谢,我下次会小心的:-)

标签: c# list csv replace datagridview


【解决方案1】:

您可以在构建列表时替换文本

matchhtList = (from DataRow dr in dt.Rows
                   select new HT()
                   {
                       Home = dr["Home"].ToString().Replace("Rosenborg", "Rihanna"),
                       Away = dr["Away"].ToString().Replace("Start", "Stop").Replace("Brann", "Circus"),
                       ScoreHome = dr["ScoreHome"].ToString(),
                       ScoreAway = dr["ScoreAway"].ToString(),
                       Segno = dr["Segno"].ToString(),
                       odd1 = dr["odd1"].ToString(),
                       oddx = dr["oddx"].ToString(),
                       odd2 = dr["odd2"].ToString()

                   }).ToList();

dataGridView2.DataSource = matchhtList;

【讨论】:

    【解决方案2】:

    你可以操作gridview的rowdatabound事件中的值

    https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowdatabound(v=vs.110).aspx

    并且您的datasource 必须是一个列表或DataTable 在上述情况下。

    dataGridView2.DataSource = mystring;//Wrong
    

    应该是

    dataGridView2.DataSource = matchList;
    

    【讨论】:

      猜你喜欢
      • 2022-01-02
      • 2021-05-22
      • 2021-12-19
      • 1970-01-01
      • 2022-11-22
      • 1970-01-01
      • 2012-11-26
      • 2019-05-13
      • 2013-05-01
      相关资源
      最近更新 更多