empty - list.any c#
Verifique si la lista está vacía en C# (8)
Tengo una lista de objetos poblados de una base de datos. Necesito mostrar un mensaje de error si la lista está vacía y mostrar una vista de cuadrícula en caso contrario.
¿Cómo puedo verificar si una List<T>
está vacía en C #?
¿Qué pasa con el uso del método Count ()?
if(listOfObjects.Count() != 0)
{
ShowGrid();
HideError();
}
else
{
HideGrid();
ShowError();
}
Deberías usar una instrucción IF
simple
List<String> data = GetData();
if (data.Count == 0)
throw new Exception("Data Empty!");
PopulateGrid();
ShowGrid();
Por qué no...
bool isEmpty = !list.Any();
if(isEmpty)
{
// error message
}
else
{
// show grid
}
El GridView
también tiene una EmptyDataTemplate
que se muestra si el origen de datos está vacío. Este es un enfoque en ASP.NET:
<emptydatarowstyle backcolor="LightBlue" forecolor="Red"/>
<emptydatatemplate>
<asp:image id="NoDataErrorImg"
imageurl="~/images/NoDataError.jpg" runat="server"/>
No Data Found!
</emptydatatemplate>
Si está utilizando una vista de cuadrícula, utilice la plantilla de datos vacía: EmptyDataTemplate
<asp:gridview id="CustomersGridView"
datasourceid="CustomersSqlDataSource"
autogeneratecolumns="true"
runat="server">
<emptydatarowstyle backcolor="LightBlue"
forecolor="Red"/>
<emptydatatemplate>
<asp:image id="NoDataImage"
imageurl="~/images/Image.jpg"
alternatetext="No Image"
runat="server"/>
No Data Found.
</emptydatatemplate>
</asp:gridview>
Si la implementación de la lista que está utilizando es IEnumerable<T>
y Linq es una opción, puede usar Any
:
if (!list.Any()) {
}
De lo contrario, generalmente tiene una propiedad Length
o Count
en matrices y tipos de colección, respectivamente.
gridview tiene un método que verifica si el origen de datos al que lo está vinculando está vacío, le permite mostrar algo más.
If (list.Count==0){
//you can show your error messages here
} else {
//here comes your datagridview databind
}
Puede hacer que su cuadrícula de datos sea visible y hacerla visible en la sección else.
var dataSource = lst!=null && lst.Any() ? lst : null;
// bind dataSource to gird source