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

如何将列表数据存入变量?解决System.Collections.Generic.List显示异常

解决C#查询列表后无法显示属性值的问题

问题根源很明确:

  • 自定义的HexBin类默认继承自Object,它的ToString()方法只会输出类的全名,不会自动显示ValHex和ValBin属性
  • 用Where查询得到的List<HexBin>(或IEnumerable<HexBin>),直接调用ToString()也只会输出集合的类型名称,比如System.Collections.Generic.List1[HexBin]`

解决步骤

1. 重写HexBin类的ToString()方法

让单个对象能直接输出你需要的属性信息:

public class HexBin
{
    public string ValHex { get; set; }
    public string ValBin { get; set; }

    // 重写ToString,自定义输出格式
    public override string ToString()
    {
        return $"十六进制:{ValHex},二进制:{ValBin}";
    }
}

2. 处理查询后的集合输出

集合本身不能直接ToString(),需要遍历拼接每个元素的字符串:
假设你的查询代码是这样的:

private void button1_Click(object sender, EventArgs e)
{
    List<HexBin> hexBinList = /* 你的数据源 */;
    // 执行查询
    var filteredList = hexBinList.Where(item => /* 你的过滤条件,比如item.ValHex == "A1" */).ToList();

    // 错误写法:直接ToString()只会显示类型名
    // MessageBox.Show(filteredList.ToString());

    // 正确写法:拼接每个元素的字符串
    string displayContent = string.Join(Environment.NewLine, filteredList);
    MessageBox.Show(displayContent);
}

如果不想重写ToString(),也可以直接在拼接时指定属性:

string displayContent = string.Join(Environment.NewLine, 
    filteredList.Select(item => $"Hex: {item.ValHex}, Bin: {item.ValBin}"));
MessageBox.Show(displayContent);

这样就能正常显示每个元素的ValHex和ValBin值了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 17:57:19