【问题标题】:Assign item to list if CONTAINS如果包含,则将项目分配给列表
【发布时间】:2017-04-12 00:19:34
【问题描述】:

我有一个清单

public List<OrderLineItemQuestionPrice> QuestionPriceList { get; set; }

public class OrderLineItemQuestionPrice
{
    public string DisplayName { get; set; }
    public Price Price { get; set; }
    public string QuestionCode { get; set; }
}

我还有一份清单

List<OrderLineItemQuestionPrice> promotionItem;

如果QuestionCode 包含“促销”,我想将QuestionPriceList 的项目分配给promotionItem

List<OrderLineItemQuestionPrice> promotionItem = orderLineItemList.QuestionPriceList.Where(p=>p.QuestionCode.Contains("Promotion")) 

【问题讨论】:

  • 可以添加 OrderLineItemQuestionPrice 的类定义吗?
  • 你需要一个 AddRange :promotionItem.AddRange(QuestionPriceList);

标签: c# linq lambda contains


【解决方案1】:

我可以看到的一个问题是您最后没有调用ToList();。此外,如果您不想检查确切的字符串Promotion,则应致电ToLower()

List<OrderLineItemQuestionPrice> promotionItem = 
                                    orderLineItemList.QuestionPriceList
                                   .Where(p=>p.QuestionCode.ToLower().Contains("Promotion".ToLower()))
                                   .ToList() 

【讨论】:

  • "Promotion".ToLower()?
  • @AntP 是的,如果他的 QuestionCode 中有:我应该升职。 Contains("Promotion") 不会找到它,但 Contains("Promotion".ToLower()) 会找到它。
  • "Promotion".ToLower() == "promotion" :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-04
  • 2020-10-08
  • 2011-08-13
  • 1970-01-01
  • 2017-01-13
  • 1970-01-01
相关资源
最近更新 更多