Finding multiple items in C# List


Let us say we have a list of integers and we want to find all the numbers greater than 100. 

If list is as follows 

List<int> lst = new List<int>();
            lst.Add(20);
            lst.Add(300);
            lst.Add(400);
            lst.Add(9);
            lst.Add(19);
            lst.Add(789);
            lst.Add(45); 

Now if we print this list 

Program.cs

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

namespace ConsoleApplication24
{
    class Program
    {
        static void Main(string[] args)
        {
            List<int> lst = new List<int>();
            lst.Add(20);
            lst.Add(300);
            lst.Add(400);
            lst.Add(9);
            lst.Add(19);
            lst.Add(789);
            lst.Add(45);
            foreach(var r in lst)
            {
                Console.WriteLine(r);
            }
            Console.ReadKey(true);
        }
    }
}

1.gif

Now we need to find all the elements in the list greater than 100. So for this purpose we will use FindAll() 

2.gif
 
We can see that FindAll() takes a predicate.  So we need to create a predicate that takes an integer as input parameter. 

public static bool GreaterThanHun(int value)
{
    if (value > 100)
        return true;
    else
        return false;
}

So when we now call this predicate as the input parameter of FindAll() we will get the desired result of list numbers greater than 100. 

List<int> lstgrthund = lst.FindAll(GreaterThanHun);

Program.cs

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

namespace ConsoleApplication24
{
    class Program
    {
        static void Main(string[] args)
        {
            List<int> lst = new List<int>();
            lst.Add(20);
            lst.Add(300);
            lst.Add(400);
            lst.Add(9);
            lst.Add(19);
            lst.Add(789);
            lst.Add(45);
            foreach(var r in lst)
            {
                Console.WriteLine(r);
            }
            Console.ReadKey(true);
            List<int> lstgrthund = lst.FindAll(GreaterThanHun);
            foreach (var r in lstgrthund)
            {
                Console.WriteLine(r);
            }
            Console.ReadKey(true);
        }
        public static bool GreaterThanHun(int value)
        {
            if (value > 100)
                return true;
            else
                return false;
        }
    }
}

Output 
 
3.gif

erver'>
Similar Articles