哪个是基于数据库值在C#突出显示列表框中将字符串传递给List的更好方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了哪个是基于数据库值在C#突出显示列表框中将字符串传递给List的更好方法相关的知识,希望对你有一定的参考价值。
如果有人能告诉我什么是定义list
并将字符串传递给它的更好方法,我将不胜感激
从性能的角度来看,我不确定使用哪一个或哪一个更好
var selection = "28,2,10,30,100,51";
List<string> categories = selection.Split(',').ToList();
List<string> categories = new List<string>(selection.Split(','));
我实际上想要根据数据库选择突出显示Listbox项目
创建我的列表后,我循环遍历它们并使用以下代码突出显示asp.net中多选列表框中的选择
foreach (ListItem item in lstCatID.Items)
{
if (categories.Contains(item.Value))
item.Selected = true;
}
是最好的方法,或者可以通过任何其他方式来提高性能。
如果您只是使用它来读取值,请尝试使用IEnumerable<string>
,如果List<string>
比列表更轻和限制。当您使用IEnumerable时,您可以让编译器有机会将工作推迟到以后,可能会在此过程中进行优化。因此,在使用像Linq
这样的contains
表达式时,你在这里使用IEnumerable
可能是最好的选择。在desin模式期间,当您想要再次在两个对象之间传输项目列表时,IEnumerable是最好的选择,因为它更具限制性。
var selection = "28,2,10,30,100,51";
IEnumerable<string> categories = selection.Split(',');
foreach (ListItem item in lstCatID.Items)
{
if (categories.Contains(item.Value))
item.Selected = true;
}
ToList
内部调用List
构造函数采用IEnumerable
类型的参数,因此对于你的两种情况它都是相同的。
你应该看看:Reimplementing LINQ to Objects: Part 20 - ToList (Jon Skeet)
您可能想知道为什么我们甚至需要ToList,如果我们可以通过直接调用构造函数来创建列表。不同之处在于,为了调用构造函数,您需要将元素类型指定为类型参数。
如果您可以使用Stopwtach来查看差异,那么对您来说会更好。首先确保您的代码有效,然后担心性能。通常,针对此类任务的性能优化会导致可忽略的改进。
以上是关于哪个是基于数据库值在C#突出显示列表框中将字符串传递给List的更好方法的主要内容,如果未能解决你的问题,请参考以下文章
Pandas HTML 输出条件格式 - 如果值在范围内,则突出显示单元格
visual studio 中将选中代码相同的代码的颜色设置,修改高亮颜色