roq*_*str 0 c# windows-phone-7
我需要例如列表项的数量,这不是"".ATM,我解决这个问题:
public int getRealCount()
{
List<string> all = new List<string>(originList);
int maxall = all.Count;
try
{
for (int i = 0; i < maxall; i++)
{
all.Remove("");
}
}
catch { }
return all.Count;
}
Run Code Online (Sandbox Code Playgroud)
毫无疑问,表现非常糟糕.我很幸运,它只是一个10个项目的列表,但在手机上你应该避免这样的代码.
所以我的问题是,我该如何改进这段代码?
一个想法是:可能已经有了一种方法.第二种方法是:所有可以只填充不是""的项目.
我该怎么解决这个问题?
谢谢
听起来像你想要的:
return originList.Count(x => x != "");
Run Code Online (Sandbox Code Playgroud)
根本不需要创建集合的副本.请注意,您需要using System.Linq;
在源代码开头的using指令中使用.
(请注意,您应该不具有空的catch块这样的-这是一个可怕的想法来抑制这样的例外只有捕获异常时,你要么需要.真正处理他们或当你想重新抛出他们包装成另一种类型.如果你.必须忽略异常,你至少应该把它记录在某个地方.)