我有以下课程
public class Code
{
public string Code {get;set;}
}
例如,集合包含以下内容:
01110
01111
01112
10110
20010
20011
代码有掩码:前4个符号类似于ID,第5个符号是扩展名。如果集合包含多个具有相同ID的元素,则删除以零结尾的元素。
例如,上面的结果是:
01111
01112
10110
20011
private List<Code> FilterCode(IEnumerable<Code> codes)
{
}
答案 0 :(得分:1)
如果我得到你真正想要的东西,我会尝试这样的事情: 警告:肮脏而未经测试但我认为这会对您有所帮助。
public class Code
{
public string Id { get;set; }
public string Extension { get;set; }
public string CodeStr { get; set; }
public Code(string code)
{
CodeStr = code;
Id = code.Remove(code.Length - 1);
Extension = code.Substring(code.Length - 1);
}
}
private List<Code> CodeList(IEnumerable<string> codes)
{
var result = new List<Code>();
foreach(string str in codes)
{
var code = new Code(str);
if (result.Exists(x => x.Id == code.Id))
{
var items = result.Where(x => x.Id == code.Id && x.Extension == "0").ToList() ;
foreach (var item in items)
{
result.Remove(item);
}
if (code.Extension != "0")
result.Add(code);
}
else
{
result.Add(code);
}
}
return result;
}