Отсортировать процессы
От: Lazyman Россия  
Дата: 31.01.09 22:53
Оценка:
Всем привет!
Помогите отсортировать процессы по времни их запуска!!!


Process[] p = System.Diagnostics.Process.GetProcesses();
            for (int i = 0; i < p.Length; ++i)
            {
                if ((p[i].ProcessName == "L2") || (p[i].ProcessName == "l2"))
                {
                    pLA.Add(p[i]);
                    
                }
            }
            pLA.Sort(new MyComparer());


Я так понимаю, что еще нужно что-то в правила сортировки записать. пишу для этого:


public class MyComparer : IComparer<Process>
        {
            public int Compare(Process x, Process y)
            {
                return x.StartTime.CompareTo(y.StartTime);
            }
        }


и потом выскакивает:


 
Error    1    The best overloaded method match for 'System.Collections.ArrayList.Sort(System.Collections.IComparer)' has some invalid arguments    G:\4_Progr\4_LA\SendMessOtherWin\SendMessOtherWin\sendmsg.cs    47    13    SendMessOtherWin

Error    2    Argument '1': cannot convert from 'SendMessOtherWin.sendmsg.MyComparer' to 'System.Collections.IComparer'    G:\4_Progr\4_LA\SendMessOtherWin\SendMessOtherWin\sendmsg.cs    47    22    SendMessOtherWin
Re: Отсортировать процессы
От: Tissot Россия  
Дата: 31.01.09 22:57
Оценка: 12 (1)
Здравствуйте, Lazyman, Вы писали:

L>Помогите отсортировать процессы по времни их запуска!!!


var processes = from p in Process.GetProcesses()
                where p.ProcessName == "l2" || p.ProcessName == "L2"
                order by p.StartTime
                select p;
Re[2]: Отсортировать процессы
От: Lazyman Россия  
Дата: 31.01.09 23:07
Оценка: :))) :)
Здравствуйте, Tissot, Вы писали:

T>Здравствуйте, Lazyman, Вы писали:


L>>Помогите отсортировать процессы по времни их запуска!!!


T>
T>var processes = from p in Process.GetProcesses()
T>                where p.ProcessName == "l2" || p.ProcessName == "L2"
T>                order by p.StartTime
T>                select p;
T>


Насколько я понимаю — ты привел кусок SQL-запроса. И как он мне поможет?
Re[3]: Отсортировать процессы
От: Tissot Россия  
Дата: 31.01.09 23:09
Оценка:
Здравствуйте, Lazyman, Вы писали:

T>>
T>>var processes = from p in Process.GetProcesses()
T>>                where p.ProcessName == "l2" || p.ProcessName == "L2"
T>>                order by p.StartTime
T>>                select p;
T>>


L>Насколько я понимаю — ты привел кусок SQL-запроса. И как он мне поможет?


Нет, это не SQL, это C#
Re[4]: Отсортировать процессы
От: Lazyman Россия  
Дата: 31.01.09 23:25
Оценка:
Здравствуйте, Tissot, Вы писали:

T>Здравствуйте, Lazyman, Вы писали:


T>>>
T>>>var processes = from p in Process.GetProcesses()
T>>>                where p.ProcessName == "l2" || p.ProcessName == "L2"
T>>>                order by p.StartTime
T>>>                select p;
T>>>


L>>Насколько я понимаю — ты привел кусок SQL-запроса. И как он мне поможет?


T>Нет, это не SQL, это C#


Только почему в MSDN написано на from — что он из Internet Development SDK??


Sets or retrieves the starting value of an animation.

Syntax

HTML <ELEMENT FROM = vValue... >  
Scripting object.from(val) [ = vValue ]


и как его в простой код вставлять?
Re[5]: Отсортировать процессы
От: Tissot Россия  
Дата: 31.01.09 23:36
Оценка:
Здравствуйте, Lazyman, Вы писали:

T>>Нет, это не SQL, это C#


L>Только почему в MSDN написано на from — что он из Internet Development SDK??


http://msdn.microsoft.com/en-us/library/bb383978.aspx

L> и как его в простой код вставлять?


Выше приведен пример на C#
Re[5]: Отсортировать процессы
От: nikov США http://www.linkedin.com/in/nikov
Дата: 01.02.09 10:10
Оценка:
Здравствуйте, Lazyman, Вы писали:

L> и как его в простой код вставлять?


Просто вставляешь приведенный кусок кода в какой-нибудь метод на C# 3.0.
См. C# 3.0 Language Specification, 7.15 Query expressions
Еще The LINQ Project, http://www.google.com/search?q=LINQ
Re[6]: Отсортировать процессы
От: Lazyman Россия  
Дата: 01.02.09 19:15
Оценка:
Здравствуйте, nikov, Вы писали:

N>Здравствуйте, Lazyman, Вы писали:


L>> и как его в простой код вставлять?


N>Просто вставляешь приведенный кусок кода в какой-нибудь метод на C# 3.0.

N>См. C# 3.0 Language Specification, 7.15 Query expressions
N>Еще The LINQ Project, http://www.google.com/search?q=LINQ
ну да, только вот что бы поставить SDK 3.0 нужно студию 2008. А у меня 2005 и переезд еще не скоро предполагается.
Re[6]: Отсортировать процессы
От: Lazyman Россия  
Дата: 01.02.09 20:01
Оценка:
Здравствуйте, nikov, Вы писали:

N>Здравствуйте, Lazyman, Вы писали:


L>> и как его в простой код вставлять?


N>Просто вставляешь приведенный кусок кода в какой-нибудь метод на C# 3.0.

N>См. C# 3.0 Language Specification, 7.15 Query expressions
N>Еще The LINQ Project, http://www.google.com/search?q=LINQ

Нашел как это сделать через SortedList


SortedList<DateTime, IntPtr> sList = new SortedList<DateTime, IntPtr>();
...
...
sList.Add(p[i].StartTime, p[i].MainWindowHandle);  
...
Re[7]: Отсортировать процессы
От: Tissot Россия  
Дата: 01.02.09 21:42
Оценка: 3 (1)
Здравствуйте, Lazyman, Вы писали:

N>>Просто вставляешь приведенный кусок кода в какой-нибудь метод на C# 3.0.

N>>См. C# 3.0 Language Specification, 7.15 Query expressions
N>>Еще The LINQ Project, http://www.google.com/search?q=LINQ
L>ну да, только вот что бы поставить SDK 3.0 нужно студию 2008. А у меня 2005 и переезд еще не скоро предполагается.

using System;
using System.Collections.Generic;
using System.Diagnostics;

namespace ConsoleApplication1 {
    internal static class Program {
        private static void Main() {
            List<Process> processes = new List<Process>();
            foreach(Process process in Process.GetProcesses()){
                if (true /* Your condition here */)
                    processes.Add(process);
            }

            processes.Sort(delegate(Process p1, Process p2) { return DateTime.Compare(p1.StartTime, p2.StartTime); });

            foreach (Process process in processes)
                Console.WriteLine("{0}: {1}", process.ProcessName, process.StartTime);
        }
    }
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.