按字符串字段筛选集合
本文关键字:集合 筛选 字段 字符串 | 更新日期: 2023-09-27 17:58:47
我有以下类
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)
{
}
如果我得到了你真正想要的,我会尝试这样的方法:警告:很脏,没有经过测试,但我认为这会对你有所帮助。
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;
}