c# - 如果值匹配,则从另一个字符串数组获取字符串

标签 c# arrays linq

字符串数组 1:(格式为: <MENU>|<Not Served?>|<Alternate item served> )

Burger|True|Sandwich
Pizza|True|Hot Dog

字符串数组2:(包含菜单)

Burger
Pizza
Grill Chicken
Pasta

我需要提供菜单或为该特定项目提供任何替代项目。

代码:

for(int i = 0; i < strArr2.Length; i++)
{
    if(strArr2.Any(_r => _r.Split('|').Any(_rS => _rS.Contains(strArr1[i])))) 
    {
        var menu = strArr2[i];
        var alternate = ? // need to get alternate item
    }
}

正如我在代码中评论的那样,如何获取该字符串数组中的替代项?请帮忙,提前致谢。

P.S:如果条件允许,我们也很欢迎任何帮助修剪。

最佳答案

您可以使用Where来获取匹配的值,而不是any。

@Markus 正在提供详细的答案,我只是使用您的代码来为您找到快速解决方案。

for(int i = 0; i < strArr2.Length; i++)
{
    if(strArr2.Any(_r => _r.Split('|').Any(_rS => _rS.Contains(strArr1[i])))) 
    {
        var menu = strArr2[i];
        var alternate = strArr2.Where(_rs => _rs.Split('|').Any(_rS => _rS.Contains(strArr1[i]))).First().Split('|').Last();
    }
}

关于c# - 如果值匹配,则从另一个字符串数组获取字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41083919/

相关文章:

c# - LINQ 按特定列中每个唯一值的最高值排序

c# - 从 lambda 表达式中检索属性名称

c# - WHERE 语句在使用 It.IsAny 的单元测试中不起作用

c# - 通用可空枚举

java - 有没有一种干净的方法来声明每个元素具有相同值的 Java 数组?

c# - 动态加载 ResourceDictionary

c - 将一系列整数读入数组?

c++ - 多功能阵列最后一行结果相同

c# - 将大括号用于可变范围目的是错误的吗?

c# - 对如何设置我的类(class)感到困惑,不想公开逗号分隔列表,只公开一个集合