How to remove all occurrences of a string in a list using Linq with C#

1 Answer

0 votes
using System;
using System.Linq;
using System.Collections.Generic;
   
class Program
{
    static void Main() {
        var list = new List<string> { "c++", "c#", "c++", "c", "c++", "java", "php", "c++" };
   
        int[] indexes = list.Select((s, i) => s == "c++" ? i : -1).Where(i => i != -1).ToArray();
        
        for (int i = indexes.Length - 1; i > -1; i--) {
            list.RemoveAt(indexes[i]);
        }
        
        Console.WriteLine(string.Join(", ", list));
    }
}
   
   
   
   
/*
run:
      
c#, c, java, php
    
*/

 



answered Jul 6, 2023 by avibootz
...