none
linq : 如何提高toLook 被多次调用时的效率? RRS feed

  • 问题

  •     ///定义一个测试类
        class student
        {
          public int id;
          public string name;
        }
    
        void testMethod()
        {
          List<student> students = new List<student>();
          ILookup<string, student> lk = students.ToLookup(r => r.name) ;
    
          ///下面连个命令是否会使lk的linq被执行两次而影响效率呢?
          ///怎样才能提高效率,仅执行一次呢? 谢谢
          int n = lk.Count();
          foreach (IGrouping<string, student> crrGrp in lk) ;
        }
    
    

    信奎爷,无所畏惧!!
    2011年3月6日 10:35

答案

  • 你说哪个?

    ILookup<string, student> lk = students.ToLookup(r => r.name) ;
    
    这句执行后,就返回结果了,再次使用 lk,不会导致这行的多次执行。


    2011 c# mvp China
    2011年3月7日 1:10
    版主
  • 哦? 原来是这样啊:) 那看来我就不必操心了。 貌似所有ToXXX 都是执行后的结果咯。
    信奎爷,无所畏惧!!
    2011年3月7日 1:13

全部回复

  • 你说哪个?

    ILookup<string, student> lk = students.ToLookup(r => r.name) ;
    
    这句执行后,就返回结果了,再次使用 lk,不会导致这行的多次执行。


    2011 c# mvp China
    2011年3月7日 1:10
    版主
  • 哦? 原来是这样啊:) 那看来我就不必操心了。 貌似所有ToXXX 都是执行后的结果咯。
    信奎爷,无所畏惧!!
    2011年3月7日 1:13