我有一个以下面的格式的csv文件:
这个规则表被加载到一个
现在,我使用LINQ来获取规则并传递参数。
此外,我想通过类似的规则获取文档类型并将其存储在列表中。由于某些RuleValue将具有逗号分隔的值,因此我无法获取具有相似规则的文档类型。 例如:
现在我使用以下方法来收集具有相似规则的文档类型:
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个条目:
标题保险单A、标题保险单B-第I部分、标题保险单B-第II部分、标题保险单。
那么兄弟文件类型应该是一个列表,其中包括:
标题认可、标题保险单A、标题保险单B-第I部分、标题保险单B-第II部分。