gpt4 book ai didi

c# - 拆分逗号分隔的字符串并比较列表中的每个值

转载 作者:太空狗 更新时间:2023-10-30 01:33:38 27 4
gpt4 key购买 nike

我有一个以下格式的 csv 文件:

enter image description here

此规则表载入 List<DoctypeRule> 对象,我正在使用此列表来获取基于 RuleCode 和 RuleValue 的 DocType 值。 DoctypeRule 类如下所示

public class DoctypeRule 
{
public string doctype {get; set; }
public string ruleCode {get; set; }
public string ruleValue {get; set; }
}

现在,为了获取规则,我使用了 LINQ 并传递了一个参数。

DoctypeRule rule = new DoctypeRule();
rule = lsdoctypeRules.Find(r => r.docType == myparameter);

我还想获取具有相似规则的文档类型并存​​储在列表中。由于某些 RuleValue 将具有逗号分隔值,因此我无法获取具有类似规则的文档类型示例:

string ruleCode = rule.ruleCode;;
string ruleValue = rule.ruleValue;
List<string> lsruleValues = ruleValue.Split(',').ToList();

现在收集与我使用的相似规则的文档类型

var siblingDoctypes = lsdoctypeRules
.Where(r => r.ruleValue == ruleValue && r.ruleCode == ruleCode)
.Select(x => x.docType);

当 RuleValue 只有一个值时,这有利于获取文档类型。但是当有逗号分隔值时,我尝试了这样的事情

var siblingDoctypes = lsdoctypeRules                    
.Where(r => r.ruleValue.Split(',').ToList().Any(lsruleValues.Any().ToString()) && r.ruleCode == ruleCode)
.Select(x => x.docType);

预期的是如果 lsruleValues有 4 个项目

Title Policy Schedule A,Title Policy Schedule B-Part I,Title Policy Schedule B-Part II,Title Policy

那么兄弟文档类型应该是一个列表

Title Endorsement, Title Policy Schedule A,Title Policy Schedule B-Part I,Title Policy Schedule B-Part II.

最佳答案

好的,我想我已经全神贯注于您要尝试做的事情了。您真正想要做的是检查 lsruleValues 是否包含任何规则值。我相信这会成功:

var siblingDoctypes = 
lsdoctypeRules
.Where(r => r.ruleCode == ruleCode &&
r.ruleValue
.Split(new char[] { ',' })
.Join(
lsruleValues,
x => x,
y => y,
(x, y) => x)
.Any())
.Select(x => x.docType);

您可能也想考虑使用不区分大小写的字符串比较。

关于c# - 拆分逗号分隔的字符串并比较列表中的每个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33172366/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com