LINQ区别不使用IEqualityComparer?(LINQ Distinct not using the IEqualityComparer? [duplicate])
这个问题在这里已有答案:
我有以下型号:
public class Word { public string Original { get; set; } public string Normalized { get; set; } public string Root { get; set; } public string Subroot { get; set; } public Regex SubrootRegex { get; set; } }
我创建了以下三个
IEqualityComparer<Word>
:public class NormalizedWordComparer : IEqualityComparer<Word> { public bool Equals(Word x, Word y) { return x.Normalized == y.Normalized; } public int GetHashCode(Word obj) { return obj.GetHashCode(); } } public class RootWordComparer : IEqualityComparer<Word> { public bool Equals(Word x, Word y) { return x.Root == y.Root; } public int GetHashCode(Word obj) { return obj.GetHashCode(); } } public class SubrootWordComparer : IEqualityComparer<Word> { public bool Equals(Word x, Word y) { return x.Subroot == y.Subroot; } public int GetHashCode(Word obj) { return obj.GetHashCode(); } }
在另一个课程中,我尝试执行以下操作:
_normalizedWords = ConfigurationFacade.Words.Select(w => { Word word = new Word() { Original = w }; word.Normalized = Normalize(word, _filters); word.Root = GetRoot(word.Normalized, ConfigurationFacade.WordRootPercentage); word.Subroot = GetRoot(word.Root, ConfigurationFacade.WordSubrootPercentage); word.SubrootRegex = null; //Complicated regex here return word; }).Distinct(new NormalizedWordComparer()); _wordRoots = _normalizedWords.Distinct(new RootWordComparer()); _wordSubroots = _wordRoots.Distinct(new SubrootWordComparer());
但是,
_normalizedWords
,_wordRoots
和_wordSubroots
都会以相同数量的元素结束,就好像Distinct()
方法不起作用或者忽略比较器一样。我用调试器检查了元素,并且有很多具有相同的
Root
值,因此在_wordRoots
应该只有一个,但事实并非如此,它们不会被删除或过滤。为什么我的
Distinct()
不起作用?This question already has an answer here:
I have the following model:
public class Word { public string Original { get; set; } public string Normalized { get; set; } public string Root { get; set; } public string Subroot { get; set; } public Regex SubrootRegex { get; set; } }
I have created the following three
IEqualityComparer<Word>
:public class NormalizedWordComparer : IEqualityComparer<Word> { public bool Equals(Word x, Word y) { return x.Normalized == y.Normalized; } public int GetHashCode(Word obj) { return obj.GetHashCode(); } } public class RootWordComparer : IEqualityComparer<Word> { public bool Equals(Word x, Word y) { return x.Root == y.Root; } public int GetHashCode(Word obj) { return obj.GetHashCode(); } } public class SubrootWordComparer : IEqualityComparer<Word> { public bool Equals(Word x, Word y) { return x.Subroot == y.Subroot; } public int GetHashCode(Word obj) { return obj.GetHashCode(); } }
In another class, I am trying to do the following:
_normalizedWords = ConfigurationFacade.Words.Select(w => { Word word = new Word() { Original = w }; word.Normalized = Normalize(word, _filters); word.Root = GetRoot(word.Normalized, ConfigurationFacade.WordRootPercentage); word.Subroot = GetRoot(word.Root, ConfigurationFacade.WordSubrootPercentage); word.SubrootRegex = null; //Complicated regex here return word; }).Distinct(new NormalizedWordComparer()); _wordRoots = _normalizedWords.Distinct(new RootWordComparer()); _wordSubroots = _wordRoots.Distinct(new SubrootWordComparer());
However,
_normalizedWords
,_wordRoots
and_wordSubroots
all end up with the same amount of elements, as if theDistinct()
method didn't work or the comparer is being ignored.I checked the elements with the debugger, and there are a lot that have the same
Root
value, so there should only be one of them in_wordRoots
, but that's not the case, they are not removed or filtered.Why is my
Distinct()
not working?
原文:https://stackoverflow.com/questions/31052902
最满意答案
通过在链接的href属性中的url的查询字符串部分传递它:
"...<a href=\"editmember.php?id=".$row["ID"]."\">".$row["ID"]."</a>..."
在editmember.php $ _GET ['id']中将包含点击的ID。
By passing it in the querystring part of the url in the href attribute of the link:
"...<a href=\"editmember.php?id=".$row["ID"]."\">".$row["ID"]."</a>..."
In editmember.php $_GET['id'] will contain the clicked id.
相关问答
更多-
你可以通过json_encode()函数来完成它。 您还可以使用mysqli_fetch_all()函数将所有数据转换为数组: $data = mysqli_fetch_all($result, MYSQLI_ASSOC); $jsonData = json_encode(array('slider'=>$data, 'status' => 'success')); 如果你想为每一行设置'status'=>'success' ,就这样做(在json_encode之前) foreach($data as $ ...
-
$row = mysqli_fetch_assoc($result3); 因为当您在循环之前执行此操作时,将指针移动到下一行,以便循环从第二行开始。 在循环之前,您可以将指针重置为第1行 mysqli_data_seek($result3,0); $row = mysqli_fetch_assoc($result3); Because when you do that before the loop, you move the pointer to next row so your loop st ...
-
通过在链接的href属性中的url的查询字符串部分传递它: "...".$row["ID"]."..." 在editmember.php $ _GET ['id']中将包含点击的ID。 By passing it in the querystring part of the url in the href attribute of the link: "...为了弄清楚您的查询有什么问题,您必须执行以下操作: if ($result = mysqli_query($db, $sql)) { // Here you can see and check count of rows in your result set. $numRows = mysqli_num_rows($result); // ... } else { // Here you can see and check and understand error. ...
得到mysqli_fetch_assoc()错误,无法以某种方式解决它[重复](got mysqli_fetch_assoc() error, can't solve it somehow [duplicate])[2023-07-23]
您的查询未关闭 'SELECT partnr, hoeveelheid FROM producten WHERE partnr='.$_GET['toevoegen']; 应该关闭它或给$ _GET一个变量 示例:这是对代码的简单修改,或者尝试其他代码 'SELECT partnr, hoeveelheid FROM producten WHERE partnr="'.$_GET['toevoegen'].'"'; 试试这个代码如果只有一行,那么if(!empty(mysqli_fetch_assoc($projects))){将获取它并且不会输入你的while循环。 相反,要检查是否存在行,请使用mysqli_num_rows($projects) 。 此外, 提醒,如果您还没有在MySQL查询中使用它之前,请转义用户提交的数据。 这可以通过以下方式完成: $query = "SELECT * FROM projects WHERE projectsurl='".mysqli_real_escape_string($conn, ...你试过这个吗? $sql = "SELECT * FROM jobs"; $query = mysqli_query($db_conx, $sql); while($row = mysqli_fetch_assoc($query)){ print_r($row); } 它会显示你所有的$row内容 ,我很确定它会有所帮助。 您可以在php文档中看到有关print_r()函数的更多信息 Did you tried this? $sql = "SELECT * FROM jobs"; $quer ...使用PHP,mysqli和mysqli_fetch_assoc显示主题列表(Displaying a list of topics with PHP, mysqli and mysqli_fetch_assoc)[2022-03-27]
你的while循环打破了表结构。 你已经在“td”内启动了while循环,但在“tr”之后结束了。 这是正确的: '; whi ...检查评论: -我试图通过将结果变量设置为另一个临时变量并在其上调用mysqli_fetch_assoc()来执行此操作,以便while循环再次运行下一行 它不起作用。 仅仅因为您将资源ID分配给第二个变量,并不意味着您现在拥有可以单独操作的第二个结果集。 两个变量都引用相同的资源ID。 获取一行仍将移动“原始”数据集的行指针。 我还必须将每一行与返回的下一行进行比较 最有可能的是,你试图展望未来会让自己变得更加困难。 当你查看前一行时,这样的东西通常更容易完成。 你已经获取的那个 - 所以你现在不需要进行额外的提取,这会 ...相关文章
更多- 利用Linq + Ajax 异步分页实现单个删除,批
- 不使用hibernate只使用struts2结构怎么对数据库进行操作
- jQuery中$与$()的区别?
- hql 查询问题
- Scott Hanselman's 推荐的的实用工具集合(2011版)
- Scott Hanselman's 推荐的的实用工具集合(2011版)
- ibaits groupby 与overOrderBy 的区别?
- NoSuchMethodException和NoSuchMethodError的区别
- JDK,JRE,JVM区别与联系
- SolrCloud和MultiCore的区别
最新问答
更多- 获取MVC 4使用的DisplayMode后缀(Get the DisplayMode Suffix being used by MVC 4)
- 如何通过引用返回对象?(How is returning an object by reference possible?)
- 矩阵如何存储在内存中?(How are matrices stored in memory?)
- 每个请求的Java新会话?(Java New Session For Each Request?)
- css:浮动div中重叠的标题h1(css: overlapping headlines h1 in floated divs)
- 无论图像如何,Caffe预测同一类(Caffe predicts same class regardless of image)
- xcode语法颜色编码解释?(xcode syntax color coding explained?)
- 在Access 2010 Runtime中使用Office 2000校对工具(Use Office 2000 proofing tools in Access 2010 Runtime)
- 从单独的Web主机将图像传输到服务器上(Getting images onto server from separate web host)
- 从旧版本复制文件并保留它们(旧/新版本)(Copy a file from old revision and keep both of them (old / new revision))
- 西安哪有PLC可控制编程的培训
- 在Entity Framework中选择基类(Select base class in Entity Framework)
- 在Android中出现错误“数据集和渲染器应该不为null,并且应该具有相同数量的系列”(Error “Dataset and renderer should be not null and should have the same number of series” in Android)
- 电脑二级VF有什么用
- Datamapper Ruby如何添加Hook方法(Datamapper Ruby How to add Hook Method)
- 金华英语角.
- 手机软件如何制作
- 用于Android webview中图像保存的上下文菜单(Context Menu for Image Saving in an Android webview)
- 注意:未定义的偏移量:PHP(Notice: Undefined offset: PHP)
- 如何读R中的大数据集[复制](How to read large dataset in R [duplicate])
- Unity 5 Heighmap与地形宽度/地形长度的分辨率关系?(Unity 5 Heighmap Resolution relationship to terrain width / terrain length?)
- 如何通知PipedOutputStream线程写入最后一个字节的PipedInputStream线程?(How to notify PipedInputStream thread that PipedOutputStream thread has written last byte?)
- python的访问器方法有哪些
- DeviceNetworkInformation:哪个是哪个?(DeviceNetworkInformation: Which is which?)
- 在Ruby中对组合进行排序(Sorting a combination in Ruby)
- 网站开发的流程?
- 使用Zend Framework 2中的JOIN sql检索数据(Retrieve data using JOIN sql in Zend Framework 2)
- 条带格式类型格式模式编号无法正常工作(Stripes format type format pattern number not working properly)
- 透明度错误IE11(Transparency bug IE11)
- linux的基本操作命令。。。