所以,我有這樣的代碼方式來設置屬性取決於其他財產
Process[] processesManager = Process.GetProcesses();
List<ProcessInfo> temporaryProcessesList = new List<ProcessInfo>();
for (int i = 0; i < processesManager.Length; ++i)
{
temporaryProcessesList.Add(new ProcessInfo(processesManager[i].ProcessName, processesManager[i].Id, TimeSpan.Zero, "Group"));
}
processesList = temporaryProcessesList.GroupBy(d => new {d.Name}).Select(d => d.First()).ToList();
此代碼是用於獲取當前進程。然後我將這些處理加入temporaryProcessesList
。而不是簡單的字符串「組」我想根據進程的名稱來設置屬性。例如,如果進程名爲leagueoflegends.exe,那麼我想將組設置爲「遊戲」,如果它的devenv.exe我想將組設置爲「軟件開發」。
而我的問題是,如何做到最簡單/最好的方式?我正在考慮使用帶字符串和枚舉的字典。並將ProcessName
與字符串進行比較。但也許有更好的方法來做到這一點。
ProcessInfo
是具有4個屬性和構造函數的簡單類。
public class ProcessInfo
{
private string Name { get; set; }
private int Id { get; set; }
private TimeSpan Time { get; set; }
private string Group { get; set; }
public ProcessInfo(string name, int id, TimeSpan time, string group)
{
Name = name;
Id = id;
Time = time;
Group = group;
}
}
它比寫字典更像書寫方式,因爲我需要爲每個過程編寫案例。但是,那是另一個解決方案。 – Porqqq
確實如此,但您可以更新'UpdateGroupName'方法以從文本文件,XML文件等中讀取進程名稱及其對應的組名。這樣,您就可以在不重建的情況下更新組名。 –
Hymm ..我想用字典來做。我的意思是從json文件讀到字典,我認爲這會是更好的方法。你不覺得嗎? – Porqqq