截断数据列c#
本文关键字:数据 | 更新日期: 2023-09-27 18:11:17
我用的是c#。
我有ODBC DSN连接,我带入DataTable。第一栏是"BRANCH"
的例子:
BRANCH-----| TYPE-----| ID-----|
1V--------------| R-----------| ZZ
1A--------------| R-----------| ZZ
3---------------| W-----------| VW
2V--------------| R-----------| VW
1---------------| R-----------| NI
4---------------| I-----------| MA
3B--------------| R-----------| SZ
我想改变第一列,使它只包含第一个字符。
它看起来像这样。
BRANCH-----| TYPE-----| ID-----|
1---------------| R-----------| ZZ
1---------------| R-----------| ZZ
3---------------| W-----------| VW
2---------------| R-----------| VW
1---------------| R-----------| NI
4---------------| I-----------| MA
3---------------| R-----------| SZ
根据您需要使用表达式创建列,您可以在表达式中使用substring
。请参阅dataccolumn上的MSDN信息。表达
我相信第一个字符在索引1
dcUnits.Expression = string.Format("SUBSTRING({0}, 1, 1)+''+{1}+''+{2}", "BRANCH", "TYPE", "ID");
我使用RegEx来获得所有的数字,所以如果你有一个两位数,它将工作。如果不工作,尝试索引号From: row["BRANCH"] To: row[0]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Text.RegularExpressions;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
DataTable dt = new DataTable();
dt.Columns.Add("BRANCH", typeof(string));
dt.Columns.Add("TYPE", typeof(string));
dt.Columns.Add("ID", typeof(string));
dt.Rows.Add(new object[] { "1V", "R", "ZZ"});
dt.Rows.Add(new object[] { "1A", "R", "ZZ"});
dt.Rows.Add(new object[] { "3", "W", "V"});
dt.Rows.Add(new object[] { "2V", "R", "VW"});
dt.Rows.Add(new object[] { "1", "R", "NI"});
dt.Rows.Add(new object[] { "4", "I", "MA"});
dt.Rows.Add(new object[] { "1B", "R", "SZ"});
foreach (DataRow row in dt.AsEnumerable())
{
row["BRANCH"] = Regex.Match(row["BRANCH"].ToString(), "''d+").Value.ToString();
}
}
}
}
遍历DataTable并重置每行中的BRANCH值。
foreach (DataRow row in dt.Rows)
{
row["BRANCH"] = row["BRANCH"].ToString().Substring(0,1);
Console.WriteLine(row["BRANCH"].ToString());
}
这是一个完整的工作版本与您提供的数据:https://dotnetfiddle.net/pJzeAO
注意:我的重置代码与之前的答案不同,它将其重置为"第一个字符"而不是数值。我相信"第一个字符"是你在问题中要求的。
两个选项都有。使用适合你情况的东西。