拆分值后在C#列表中标识不同的项
我正在使用C#(.NET4.0)。我有一个拆分值后在C#列表中标识不同的项,c#,list,loops,optimization,.net-4.0,C#,List,Loops,Optimization,.net 4.0,我正在使用C#(.NET4.0)。我有一个 class Employee { public string Location { get; set; } public int ID { get; set; } public string FilterType { get; set; } public Employee(string name, int id, string fType) { Location = name;
class Employee
{
public string Location { get; set; }
public int ID { get; set; }
public string FilterType { get; set; }
public Employee(string name, int id, string fType)
{
Location = name;
ID = id;
FilterType = fType;
}
}
List<Employee> empList = new List<Employee>();
Employee e = new Employee("[IND].[MH].&1", 1, "="); empList.Add(e);
e = new Employee("[SNG].[Tampines].&1", 7, "="); empList.Add(e);
e = new Employee("[IND].[MP].&2", 5, "="); empList.Add(e);
e = new Employee("[USA].[NYC].&2", 9, "="); empList.Add(e);
e = new Employee("[IND].[MH].&3", 3, "="); empList.Add(e);
e = new Employee("[IND].[MP].&1", 4, "="); empList.Add(e);
e = new Employee("[SNG].[Bedok].&1", 6, "="); empList.Add(e);
e = new Employee("[USA].[NYC].&1", 8, "="); empList.Add(e);
e = new Employee("[IND].[MH].&2", 2, "="); empList.Add(e);
class员工
{
公共字符串位置{get;set;}
公共int ID{get;set;}
公共字符串筛选器类型{get;set;}
公共雇员(字符串名称、int-id、字符串fType)
{
位置=名称;
ID=ID;
FilterType=fType;
}
}
List empList=新列表();
员工e=新员工(“[IND].[MH].&1”,1,”=”;添加(e);
e=新员工(“[SNG].[Tampines].&1”,7“=”);添加(e);
e=新员工(“[IND].[MP].&2”,5,”=”;添加(e);
e=新员工(“[USA].[NYC].&2”,9“=”);添加(e);
e=新员工(“[IND].[MH].&3”,3,”=”;添加(e);
e=新员工(“[IND].[MP].&1”,4,”=”;添加(e);
e=新员工(“[SNG].[Bedok].&1”,6“=”;添加(e);
e=新员工(“[USA].[NYC].&1”,8“=”);添加(e);
e=新员工(“[IND].[MH].&2”,2,”=”;添加(e);
我想做的是:
谢谢是的,有一个更简单的方法。您可以按功能使用LINQ组:
var grouped = from emp in empList
group emp by emp.Location.Split('&')[0] into g
select new {LocCode = g.Key, Emps = g};
foreach (var group in grouped) {
// group.LocCode contains, e.g., [USA].[NYC].,
// group.Emps contains all employees at this location
}
你太专注于力学了。描述你正在努力实现的目标会更有成效,因为不管是什么,听起来肯定不是这样做的。首先,为什么
Location
是一个哑字符串?@Jon:谢谢你的评论。我给出这么多细节的唯一原因是人们通常会问,你试过什么?为什么loaction是哑字符串-这是存储多维数据集(SSAS)数据的格式。我需要操纵键来形成query.TL;DR:从更高的抽象层次描述你的目标。良好的意图值得称赞,但“机制”和“细节”不是一回事。“我想按所有者对小部件进行分组,并找到拥有最多的所有者”是详细信息。“我想在……上拆分,&并将[X].[Y]转换为{[X].[Y]&1..}”是一种机制。实际上,听起来你并不想分裂自己。你想做其他的事情,你认为分裂是一种方式,但在这方面你可能是错的。见@Jon:“XY问题”有道理。收到的信息:)