gpt4 book ai didi

c# - 通过 LINQ 检查分隔字段中的值

转载 作者:行者123 更新时间:2023-11-30 17:41:43 26 4
gpt4 key购买 nike

我有一个 Db 表,其中包含一个名为“Line”的 csv 字段。该字段中有多个值,以分号分隔。

我试图找到一个 LINQ 表达式来检查是否有任何行的“行”字段中的第二个值具有特定值。

类似于:

if (dbContext.Test.Any(t => Array.IndexOf(t.Line.Split(';'), value) = 1))
{
Do something ...
}

例子:

Line = "value1;apple;value3;value4"
if (dbContext.Test.Any("second value in Line field equals 'apple'"))
{
Do something ...
}

执行此操作最直接、最简洁的方法是什么?

最佳答案

由于您似乎正在使用 DbContext 并且没有翻译拆分字符串或按索引搜索的机制,您需要获取比必要更多的数据,然后在 linq-to-objects 中进行过滤.您可以使用初始基本过滤器来限制返回的行数,但您需要在内存中执行剩余的过滤:

var queryEF = dbContext.Test
.Where(t => t.Line.Contains(";" + value" + ";");

var queryMemory = queryEF.AsEnumerable() // shift to Linq-to-Objects
.Where((t => Array.IndexOf(t.Line.Split(';'), value) == 1);

if (queryMemory.Any())
{
//Do something ...
}

关于c# - 通过 LINQ 检查分隔字段中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32608544/

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