You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#如何从DataRow的带空格姓名字段中提取空格后的姓氏内容

问题核心错误说明

你之前的写法mitRow[" "].ToString()是错误的,方括号内需要传入字段名,这里传入空格相当于读取DataRow中名称为空格的字段,自然无法得到正确结果。

具体实现代码

你已经提前定义了分隔符数组char[] delimiterChars = {' '};,直接调用字符串的Split方法拆分即可,同时增加空值、无空格的异常兼容逻辑:

foreach (DataRow mitRow in dtMIT.Rows)
{
    // 先获取完整姓名字符串,处理空值情况
    string fullName = mitRow["poc"]?.ToString() ?? string.Empty;
    // 按空格拆分,移除多余空条目(避免多个连续空格的问题)
    string[] nameParts = fullName.Split(delimiterChars, StringSplitOptions.RemoveEmptyEntries);
    
    if (nameParts.Length >= 2)
    {
        // 名是拆分后的第一个元素
        firstNameMIT.Text = nameParts[0];
        // 姓是拆分后的最后一个元素(兼容中间名的情况,比如John A. Doe也能正确取到Doe作为姓)
        lastNameMIT.Text = nameParts[^1];
    }
    else
    {
        // 没有空格的异常情况,可按业务需求调整赋值逻辑
        firstNameMIT.Text = fullName;
        lastNameMIT.Text = string.Empty;
    }
}

注意事项

  • 原代码中你写的Tostring存在大小写错误,C#中方法名是大写开头的ToString,拼写错误也会导致代码运行失败
  • 如果你的业务场景确定姓名只有两个单词,也可以直接用nameParts[1]取姓氏,用nameParts[^1]的写法兼容性更强

内容的提问来源于stack exchange,提问作者JonMarsh89

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 18:42:00