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(List
{
returnlist.FindAll (delegate(FeeRuleDtoinfo)
if (info.DeliveryType.ToString( ) = = strType)
{
returntrue;
}
else{
returnfalse; p>
}
});
}
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
Ejemplo:
publicNumberModelcurrentmark;
publicMainFrmmainFrm;
privateList
privateList
Estos métodos se pueden utilizar para filtrar datos en otra Lista
privateList
privatevoidlstgoodkind__SelectedIndexChanged(objectsender, EventArgse)
{
prueba
{
if (lstgoodkind.SelectedValue.ToString()! = "XY.Model.GoodsKindModel")
{
stringid = lstgoodkind.SelectedValue.ToString();
stringkname = lstgoodkind.Text;
if (kname!= "Todos")
{
List
List
List
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);
}
}
}