C# 我可以在列表中同时使用First()和Concat()吗
我有一个列表,我想从中删除空值,然后将其与另一个列表连接起来 我可以用LINQ吗?e、 gC# 我可以在列表中同时使用First()和Concat()吗,c#,linq,C#,Linq,我有一个列表,我想从中删除空值,然后将其与另一个列表连接起来 我可以用LINQ吗?e、 g ViewBag.BackUPDestinationList = ServiceBackupList.Select(x => new SelectListItem() { Value = x.ServerInstanceId.ToString(), Text = x.SPPServerName, Group = group1 }).Concat(ServiceBackupList.Select(x =
ViewBag.BackUPDestinationList = ServiceBackupList.Select(x =>
new SelectListItem()
{
Value = x.ServerInstanceId.ToString(),
Text = x.SPPServerName,
Group = group1
}).Concat(ServiceBackupList.Select(x =>
new SelectListItem()
{
Value = x.NodeGuid.ToString(),
Text = x.SPServerName,
Group = group2
})).ToList();
在上面,我使用了两个selectlstitems并将它们连接起来,但我想检查我的文本,例如x.SPPServerName或x.SPServerName是否为空或null,但不包括它们。
如果我使用First(),它也会在使用Concate()时出错 您可以在创建SelectListItem之前过滤这两个集合。考虑下面的例子,
ServiceBackupList.Where(x=>!string.IsNullOrEmpty(x.SPPServer))
.Select(x =>
new SelectListItem()
{
Value = x.ServerInstanceId.ToString(),
Text = x.SPPServerName,
Group = group1
})
.Concat(ServiceBackupList
.Where(x=>!string.IsNullOrEmpty(x.SPPServer))
.Select(x =>
new SelectListItem()
{
Value = x.NodeGuid.ToString(),
Text = x.SPServerName,
Group = group2
})).ToList();
您可以在创建SelectListItem之前过滤这两个集合。考虑下面的例子,
ServiceBackupList.Where(x=>!string.IsNullOrEmpty(x.SPPServer))
.Select(x =>
new SelectListItem()
{
Value = x.ServerInstanceId.ToString(),
Text = x.SPPServerName,
Group = group1
})
.Concat(ServiceBackupList
.Where(x=>!string.IsNullOrEmpty(x.SPPServer))
.Select(x =>
new SelectListItem()
{
Value = x.NodeGuid.ToString(),
Text = x.SPServerName,
Group = group2
})).ToList();
您可以先使用
Where
删除这些项目,然后填充SelectListItem
集合:
ServiceBackupList = ServiceBackupList
.Where(x => !String.IsNullOrEmpty(x.SPPServerName))
.ToList();
...... // code to populate in ViewBag
......
之后,您可以生成
SelectListItem
的集合。您可以先使用Where
删除这些集合,然后填充SelectListItem
集合:
ServiceBackupList = ServiceBackupList
.Where(x => !String.IsNullOrEmpty(x.SPPServerName))
.ToList();
...... // code to populate in ViewBag
......
之后,您可以生成
SelectListItem
的集合。您可以首先使用Where
过滤空值:
ViewBag.BackUPDestinationList = ServiceBackupList
.Where(x => !string.IsNullOrEmpty(x.SPPServerName)).Select(...)
.Concat(ServiceBackupList.Where(x => !string.IsNullOrEmpty(x.SPServerName))
.Select(...));
您可以先使用
过滤空值,其中
:
ViewBag.BackUPDestinationList = ServiceBackupList
.Where(x => !string.IsNullOrEmpty(x.SPPServerName)).Select(...)
.Concat(ServiceBackupList.Where(x => !string.IsNullOrEmpty(x.SPServerName))
.Select(...));
@haroonnasir很高兴它有帮助,但是在Where()之后省略ToList()。这只是开销,不需要。@bommelding i asume
ServiceBackupList
声明为List
,这是why@haroonnasir很高兴它有帮助,但是在Where()之后省略ToList()。这只是开销,不需要。@bommelding i asumeServiceBackupList
声明为List
,这是why@haroonnasir如果有帮助,请将其标记为正确答案。是的,在执行此操作之前,必须再等待1分钟。)@haroonnasir将其标记为正确答案(如果有帮助的话)。是的,在这样做之前,必须再等待1分钟。)