首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在LINQ Where子句中搜索集合的集合?

在LINQ Where子句中搜索集合的集合,可以使用Lambda表达式和递归方法。以下是一个示例:

代码语言:csharp
复制
using System;
using System.Collections.Generic;
using System.Linq;

class Program
{
    static void Main(string[] args)
    {
        List<List<int>> nestedList = new List<List<int>>
        {
            new List<int> { 1, 2, 3 },
            new List<int> { 4, 5, 6 },
            new List<int> { 7, 8, 9 }
        };

        int target = 5;
        var result = SearchNestedList(nestedList, target);

        Console.WriteLine($"The target {target} is found in the nested list: {result}");
    }

    static bool SearchNestedList(List<List<int>> nestedList, int target)
    {
        foreach (var list in nestedList)
        {
            if (list.Contains(target))
            {
                return true;
            }
        }

        return false;
    }
}

在这个示例中,我们创建了一个嵌套的整数列表,并使用递归方法SearchNestedList来搜索目标值。如果找到目标值,则返回true,否则返回false

这个示例中没有使用LINQ的Where子句,因为它不适用于嵌套列表。但是,您可以使用LINQ的SelectMany方法将嵌套列表展平,然后使用Where子句来搜索目标值。以下是一个示例:

代码语言:csharp
复制
using System;
using System.Collections.Generic;
using System.Linq;

class Program
{
    static void Main(string[] args)
    {
        List<List<int>> nestedList = new List<List<int>>
        {
            new List<int> { 1, 2, 3 },
            new List<int> { 4, 5, 6 },
            new List<int> { 7, 8, 9 }
        };

        int target = 5;
        var result = nestedList.SelectMany(x => x).Where(x => x == target).Any();

        Console.WriteLine($"The target {target} is found in the nested list: {result}");
    }
}

在这个示例中,我们使用LINQ的SelectMany方法将嵌套列表展平,然后使用Where子句来搜索目标值。最后,我们使用Any方法来检查是否找到了目标值。如果找到目标值,则返回true,否则返回false

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

C#迭代器与LINQ查询操作符

(1)使用 针对集合类型编写foreach代码块,都是在使用迭代器 集合类型实现了IEnumerable接口 都有一个GetEnumerator方法 (2)迭代器优点 假如要遍历一个庞大的集合,只要其中一个元素满足条件,据完成了任务。 (3)yield关键字 MSDN中: 在迭代器块中用于向枚举数对象提供值或发出迭代结束信号。 (4)注意事项: 1.在foreach循环式多考虑线程安全性,在foreach时不要试图对便利的集合进行remove和add操作,任何集合,即使被标记为线程安全,在foreach时,增加项和移除项都会导致异常。 2.IEnumerable接口是LINQ特性的核心接口 只有实现了IEnumerable接口的集合,才能执行相关的LINQ操作,比如select,where等

02

面向对象的简单计算器C#语言版

using circumstance; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 下午第四题面向对象的计算器 {     class Program     {         static void Main(string[] args)         {             while (true)             {                 Console.WriteLine("请输入第一个数字:");                 int number1 = Convert.ToInt32(Console.ReadLine());                 Console.WriteLine("请输入运算符:");                 string str = Convert.ToString(Console.ReadLine());                 Console.WriteLine("请输入第二个数字:");                 int number2 = Convert.ToInt32(Console.ReadLine());                 JiSuan jisuan = Show(str, number1, number2);                 if (jisuan != null)                 {                     int result = jisuan.Compute();                     Console.WriteLine("运算结果为:" + result);                 }                 else                     Console.WriteLine("请输入正确的运算符!");             }         }         ///

        /// 将运算符和数字传入的方法         ///         /// <param name="str">运算符</param>         /// <param name="number1">第一个数</param>         /// <param name="number2">第二个数</param>         /// <returns></returns>         private static JiSuan Show(string str, int number1, int number2)         {             JiSuan ji = null;             switch (str)             {                 case "+": ji = new Add(number1, number2); break;                 case "-": ji = new Sub(number1, number2); break;                 default:                     break;             }             return ji;         }     } }

01
领券