使用 C# 在列表项中搜索

Posted

技术标签:

【中文标题】使用 C# 在列表项中搜索【英文标题】:Search in the List Item Using C# 【发布时间】:2019-03-29 10:49:15 【问题描述】:

我有这样的逗号分隔 ID 值:3,4,5,7,这对于表中的每条记录都不同。

现在从配置设置中有特定的值,例如:3,4

我需要有只选择与配置值匹配的记录的代码:3,4

【问题讨论】:

请添加示例代码和数据进行查询。然后告诉我们应该选择哪些记录。 @user1941025:我们需要示例代码,请:-) 代码示例的一个具体问题:您的问题被标记为 linq to objects;但是您在表格中提到了记录。对于 linq-to-objects 和 linq-to-sql,答案(我希望你会需要)会有所不同;所以最好确保我们回答正确。 【参考方案1】:

您可以使用string.split 将逗号分隔值的字符串转换为单个值的列表。

然后,您可以使用 linq 从一个列表中查找也在另一个列表中的所有值。

var results = tableValues.Where(t => configValues.Contains(t));

【讨论】:

【参考方案2】:

Foreach 元素,您将其拆分,然后搜索您的键。 试试这个:

using System;
using System.Collections.Generic;
using System.Linq;

public class Program

    private static List<string> lstStr = new List<string>
    
        "1,2,3,4", 
        "3,4,5", 
        "3,4,5,6,7,8,9"
    ;

    private static string[] search = new[]"3", "4"; // "3,4".Split(',')

    public static void Main()
    
        foreach(var el in lstStr.Where(x => SearchFunction(x, search)))
        
            Console.WriteLine(el);
        
    

    private static bool SearchFunction(string listItem, string[] search)
    
        var hashSet = listItem.Split(',').ToHashSet();
        return search.All(hashSet.Contains);
    

【讨论】:

以上是关于使用 C# 在列表项中搜索的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Excel VSTO 加载项中为 OnUndo 调用 C# 方法?

使用 LINQ 根据 C# 中的属性值搜索嵌套在另一个列表中的列表中的项目?

SwiftUI macOS 在 TextField 处于活动状态时使用箭头键滚动列表

C#基础搜索算法

在 SharePoint 2019 的列表项中添加子列表

导航滚动到列表项中的匹配元素