c# - 从列表中获取不同的对象
问题描述
编辑:问题不在于不同的方法,而是标题的编码方式。与 StringComparison.InvariantCultureIgnoreCase 比较返回 true。问题关闭。这是我的代码:
var b = ret.DistinctBy(x => new { x.Title, x.Type }).ToList();
当我用我的输入运行这条线时,我得到了这个。我想根据标题和类型消除重复项。你能告诉我哪里出错了吗?根据我的比较,这两个对象不一样吗?
谢谢
编辑:做了更多的调试。好像名字不一样。
var z = ret[0].Title == ret[1].Title;
用文本比较器检查。这是相同的。任何想法为什么?我从 Kindle 阅读了 MyClippings。将测试他们是否以不同的方式编码标题。
解决方案
您能否分享更多代码,即使用下面我的示例的类可以正常工作:
public class Test {
public string Title {get;set;}
public Type Type {get;set;}
}
public enum Type {
Kindle
}
public static void Main()
{
var ret = new List<Test> {
new Test {
Title = "Book A",
Type = Type.Kindle
},
new Test {
Title = "Book A",
Type = Type.Kindle
}
};
var b = ret.DistinctBy(x => new { x.Title, x.Type }).ToList();
b.ForEach(x => Console.WriteLine(x.Title));
}
输出:
Book A
可运行版本:https ://dotnetfiddle.net/gi8z7j
如果您将第二个更改Book A
为Book B
它输出:
Book A
Book B
推荐阅读
- flask - Flask Admin 一对一关系和编辑表单
- mysql - 基于另一个列中的条件的MYSQL列添加
- android - 我怎样才能使导航底部栏的一项不会给我带来片段?
- arrays - 解决快速数组索引越界问题
- android - 顺利从芯片组中移除一个安卓芯片
- ios - CMMotionActivityManager - 授权状态“刷新”
- java - 如何在 jsoup 中对多条记录使用 getElementsByClass 语法?
- python - 输入图像的小波二维散射变换
- mongodb - 如何取消选择数组 MongoDB 中的一个对象?
- timeout - 动态限制 Apache Spout