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

C#对象初始化器中为string[]赋值报错,寻求解决方案

问题分析与解决方案

你的错误根源很清晰:PurgeRecord类里的KeyValues是string[](字符串数组)类型,但你在循环中直接把单个字符串key赋值给它——C#不支持将string隐式转换为string[],所以编译器抛出了类型不匹配的错误。

修正方案(单个Key对应单个PurgeRecord)

如果你的需求是分割后的每个字符串都创建一个独立的PurgeRecord实例,只需要把单个key包装成一个字符串数组即可:

string[] test = Convert.ToString(values[5]).Split('|');
foreach (string key in test) {
    purgeRecord = new PurgeRecord() { 
        KeyValues = new[] { key }, // 将单个字符串包装为数组,匹配类型要求
        IsValid = true, 
        FileName = "XYZ" 
    };
    lstPurgeRecords.Add(purgeRecord);
}

这里的new[] { key }会让编译器自动推断数组类型为string[],完美适配KeyValues的定义。

备选方案(所有Key放入同一个PurgeRecord)

如果你的实际需求是把分割后的所有字符串都存入同一个PurgeRecord的KeyValues中,那你完全不需要循环,直接将整个分割后的数组赋值即可:

string[] test = Convert.ToString(values[5]).Split('|');
var purgeRecord = new PurgeRecord() { 
    KeyValues = test, // 直接赋值整个分割后的数组
    IsValid = true, 
    FileName = "XYZ" 
};
lstPurgeRecords.Add(purgeRecord);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:29:06