none
Remover elementos de una lista si cumplen cierta condicion RRS feed

  • Pregunta

  • Hola a todos:

     Tengo la necesidad de remover los elementos de una lista cuando esta cumple una condición:

    using System.Collections.Generic;
    
    namespace ConsoleApp1
    {
        class Program
        {
            static void Main(string[] args)
            {
                var myList = new List<MyClass>
                {
                    new MyClass{ Orden = 11, Identificador = "C", Nombre = "Uno", Valor = "+"},
                    new MyClass{ Orden = 11, Identificador = "CB", Nombre = "Uno", Valor = "+"},
                    new MyClass{ Orden = 11, Identificador = "C", Nombre = "Uno", Valor = "-"},
                    new MyClass{ Orden = 12, Identificador = "A", Nombre = "Uno", Valor = "+"},
                    new MyClass{ Orden = 12, Identificador = "A", Nombre = "Uno", Valor = "-"},
                    new MyClass{ Orden = 13, Identificador = "AB", Nombre = "Tres", Valor = "+"},
                    new MyClass{ Orden = 14, Identificador = "ABC", Nombre = "Cuatro", Valor = "+"},
                };
    
            }
            public class MyClass
            {
                public int Orden { get; set; }
                public string Identificador { get; set; }
                public string Nombre { get; set; }
                public string Valor { get; set; }
            }
        }
    }

     De la lista que les pongo como ejemplo se tiene que remover aquellos elementos que coincidan en el elemento Orden, Identificador y Nombre, pero que la propiedad Valor sean diferentes.

    Ejemplo:

     En la lista de ejemplo tengo 2 elementos con Orden 11 que cumplen la regla, entonces en la lista resultante después de la discriminación de estos quedaría solo un elemento con Orden 11 y con Identificador "CB".

     Los elementos con Orden 12 se irian

     Agradezco cualquier orientación que puedan darme.



    Saludos desde Monterrey, Nuevo León, México!!!

    jueves, 13 de septiembre de 2018 13:29

Respuestas

  • Deleted
    jueves, 13 de septiembre de 2018 13:35
  • Hola José Luis:

    Antes de nada un fuerte abrazo en la distancia.

    Mira, he mirado en la msn y te copio lo que he visto que a lo mejor es lo que necesitas.

    link...

    Para eliminar elementos de una lista, use el método Delete de la clase SPListItemCollection, que usa como parámetro un índice de la colección.

    SPWeb mySite = SPContext.Current.Web;
    SPListItemCollection listItems = mySite.Lists[TextBox1.Text].Items;
    int itemCount = listItems.Count;
    
    for (int k=0; k<itemCount; k++)
    {
        SPListItem item = listItems[k];
    
        if (TextBox2.Text==item["Employee"].ToString())
        {
            listItems.Delete(k);
        }
    }
    

    Según la entrada de los dos cuadros de texto, el ejemplo se repite en la colección de elementos para la lista especificada y elimina un elemento si el valor del campo Empleado coincide con el valor especificado.

    Si te sirve bien, si no, continuaremos buscando.

    Bueno querido amigo, a lo dicho, un fuerte abrazo de tu amiga.

    Gemma

    jueves, 13 de septiembre de 2018 13:41

Todas las respuestas

  • Deleted
    jueves, 13 de septiembre de 2018 13:35
  • Hola José Luis:

    Antes de nada un fuerte abrazo en la distancia.

    Mira, he mirado en la msn y te copio lo que he visto que a lo mejor es lo que necesitas.

    link...

    Para eliminar elementos de una lista, use el método Delete de la clase SPListItemCollection, que usa como parámetro un índice de la colección.

    SPWeb mySite = SPContext.Current.Web;
    SPListItemCollection listItems = mySite.Lists[TextBox1.Text].Items;
    int itemCount = listItems.Count;
    
    for (int k=0; k<itemCount; k++)
    {
        SPListItem item = listItems[k];
    
        if (TextBox2.Text==item["Employee"].ToString())
        {
            listItems.Delete(k);
        }
    }
    

    Según la entrada de los dos cuadros de texto, el ejemplo se repite en la colección de elementos para la lista especificada y elimina un elemento si el valor del campo Empleado coincide con el valor especificado.

    Si te sirve bien, si no, continuaremos buscando.

    Bueno querido amigo, a lo dicho, un fuerte abrazo de tu amiga.

    Gemma

    jueves, 13 de septiembre de 2018 13:41