如何获得符合特定条件的listitems数量?

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个项目的列表,但在手机上你应该避免这样的代码.

所以我的问题是,我该如何改进这段代码?

一个想法是:可能已经有了一种方法.第二种方法是:所有可以只填充不是""的项目.

我该怎么解决这个问题?

谢谢

Jon*_*eet 5

听起来像你想要的:

return originList.Count(x => x != "");
Run Code Online (Sandbox Code Playgroud)

根本不需要创建集合的副本.请注意,您需要using System.Linq;在源代码开头的using指令中使用.

(请注意,您应该具有空的catch块这样的-这是一个可怕的想法来抑制这样的例外只有捕获异常时,你要么需要.真正处理他们或当你想重新抛出他们包装成另一种类型.如果你.必须忽略异常,你至少应该把它记录在某个地方.)