Red de conocimiento informático - Computadora portátil - Pregunta de C#, ¿cómo filtrar datos en la colección de listas?

Pregunta de C#, ¿cómo filtrar datos en la colección de listas?

Método 1: Linq

ChannelList son datos de tipo Lista, IsOpen es el atributo de su elemento

channelCount = (fromchannelinDevicesManager.Instance.ChannelList)

Dondecanal.IsOpen

grupocanalporcanal.ChannelID.Count(;)ChannelList

dondecanal.IsOpen

grupocanalporcanal.ChannelID).Count();

Método 2: predicado delegado generalizado

publicdelegateboolPredicate(

Tobj

)

Método 3.

//

// Filtrar método de entrega

////

///// < paramname = "list">Método de envío establecido

///////////////////////////////////// ///////////////////////////////////////////////p>

listaprivada< FeeRuleDto> selectList(Listlist, stringstrType)

{

returnlist.FindAll (delegate(FeeRuleDtoinfo)

if (info.DeliveryType.ToString( ) = = strType)

{

returntrue;

else{

returnfalse;

});

Método 4,

Al usar List<T> para obtener el tabla de la base de datos, cada operación del usuario debe volver a acceder a la base de datos y luego regresar a List , lo que afectará seriamente la eficiencia de la operación del programa. De hecho, List viene con un método de filtrado que puede filtrar. datos deseados. A otra Lista , no es necesario acceder a la base de datos nuevamente. Después del filtrado, el control se puede vincular directamente para mostrar.

Ejemplo:

publicNumberModelcurrentmark;

publicMainFrmmainFrm;

privateListgoodslist

privateListgoodslist;

Estos métodos se pueden utilizar para filtrar datos en otra Lista sin volver a visitar la base de datos.

privateListgoodskindlist;

privatevoidlstgoodkind__SelectedIndexChanged(objectsender, EventArgse)

{

prueba

{

if (lstgoodkind.SelectedValue.ToString()! = "XY.Model.GoodsKindModel")

{

stringid = lstgoodkind.SelectedValue.ToString();

stringkname = lstgoodkind.Text;

if (kname!= "Todos")

{

Listglist = Goodslist.FindAll (delegate( ));

Listglist = GoodsList.FindAll (delegate());

Listglist = GoodsList.GoodsModelp) {returnp.GoodsKind == kname; });

bindgoods(dgvgoods, glist);

else

{

bindgoods( dgvgoods.goodslist);

catch(Exceptionex)

{

MessageBox.Show (ej.Message);

privatevoidbtnAdd__Click(objectsender, EventArgse)

{

intente

{

stringgid = dgvgoods.

iclist_temp e iclist son ambos tipos de Lista

iclist_temp = iclist.Skip(50). Toma(100).

Skip(50).Take(100).ToList();

Tome las primeras 100 entradas, que se pueden escribir como:

iclist_temp = iclist.Take(100).ToList ();

ds.SelectedRows[0].Index].Cells["goodsid"].Value.ToString();<

GoodsModelgoods = lista de bienes.Find(delegate(GoodsModelp) ) ¡returnp .ID == gid });

XY.BLL.ConsumeBll.Add(bienes, marcaactual, mainFrm.user); );

catch(Exceptionex)

MessageBox.Show(ex.Message);