我很新手使用Linq和Lambda表达式,我想修改这段代码:
if (string.IsNullOrEmpty(model.PictureUrl1) && string.IsNullOrEmpty(model.Picture2Url) &&
string.IsNullOrEmpty(model.Picture3Url) && string.IsNullOrEmpty(model.Picture4Url) &&
string.IsNullOrEmpty(model.Picture5Url) && string.IsNullOrEmpty(model.Picture6Url))
return Content("");
现在,我对该模型进行了重构,使其具有这些属性和一个包含这些对象的列表。
public class PublicInfoModelItem
{
public string PictureUrl { get; set; }
public string Text { get; set; }
public string Link { get; set; }
}
并且列表如下:
public List<PublicInfoModelItem> ListOfImages = new List<PublicInfoModelItem>();
模型:
public class PublicInfoModel
{
public List<PublicInfoModelItem> ListOfImages = new List<PublicInfoModelItem>();
public string Container { get; set; }
public int TemplateId { get; set; }
public PublicInfoModelItem InfoModelItem { get; set; }
}
我认为可以采用Lambda表达式,类似于:
var result = model.ListOfImages.Where(x => string.IsNullOrEmpty(x.PictureUrl)).ToList();
if (result == null)
{
return Content("");
}
我不知道上述表达是否正确或者是否可以改进。
ListOfImages
,ToList()
会返回一个空列表而不是null。 - nbokmans