【问题标题】:How to separate comma separated and where condition in LINQ如何在 LINQ 中分隔逗号和 where 条件
【发布时间】:2021-12-31 17:03:54
【问题描述】:

我在数据库表中有一个giftcardamounts

列包含美元和逗号分隔的值。 有 40 行。

例如:

row 1: giftcardamounts : ($10,$20,$30,$40,$50)
row 2: giftcardamounts : ($100,$200,$30,$40,$50)
row 3: giftcardamounts : ($10,$20,$300,$400,$500)
...etc 

从前端有一个输入是giftcardselectedamount

例如:giftcardselectedamount=500

基于此输入金额,需要对美元和逗号分隔的值列表编写 LINQ 查询。

请帮我写这个。

【问题讨论】:

  • 根据问题指南,请展示您的尝试并告诉我们您发现了什么(在本网站或其他地方)以及为什么它不能满足您的需求。
  • 我需要编写一个 linq where 条件查询列中的 dallar 和逗号分隔值。
  • 明白了,你试过什么?我们是来帮助你的,但不是为你写的。您需要尝试过并被卡在某个地方。
  • 是的,我尝试使用逗号分隔的单个字符串。首先我用美元分隔,然后用逗号分隔。示例 :(10,20,30,40,50,) 但是如何处理列表'
  • 将项目存储在 List 然后使用 .contains() 方法搜索项目,如果这是你想要的!

标签: sql-server linq c#-4.0


【解决方案1】:

就像评论者指出的那样,您应该付出一些努力才能找到答案。你的问题也不是很清楚。您是否要求返回匹配金额的行?如果是这样,您可以尝试以下方法,该方法返回包含指定美元金额的第一行:

void Main()
{
    var data = new[] {
        "$10,$20,$30,$40,$50",
        "$100,$200,$30,$40,$50",
        "$10,$20,$300,$400,$500"};

    var giftcardSelectedAmount = 500M;

    var matchingRow = data.FirstOrDefault(x => x
        .Split(',')
        .Any(v => decimal.Parse(v, NumberStyles.Currency) == giftcardSelectedAmount));
        
    Console.WriteLine(matchingRow);
}

我可以轻松修改此答案以返回所有匹配行、出现次数或出现次数。如果您需要任何这些修改,请告诉我,我可以修改我的答案以添加这些。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-19
    • 1970-01-01
    • 2023-02-03
    • 1970-01-01
    相关资源
    最近更新 更多