C# - Use IEqualityComparer<T>.Equals() In ToLookUp<T>() Extension?

Aug 5, 2011

I stumbled upon an article regarding the Birthday Paradox and it's implications when overriding the GetHashCode method, I find myself in a bind.In tests, we found that in calls to the ToLookup() Extension, only GetHashcode is used, despite providing the implementation for Equals.

I think I understand why this happens, the internal working of ToLookup, HashSet, Dictionary, etc, use the HashCodes to store and/or index their elements?Is there a way to somehow provide the functionality so that the equality comparison is actual performed using the equals method? Or should I not be concerned with the collisions? I haven't done the maths myself, but according to the first article I linked, you would only need 77,163 elements in a list before reaching a 50% chance of collision.

If I understand this correctly, an Equals() override that compares property by property such as

Return (a.Property1 == b.Property1 && a.Property2 == b.Property2 && ...)

should have a zero chance of collision? So how can I get my ToLookup() to equality compare this way?

In case you need an example of what I mean:

[Code]...

I can get that to work with an override of GetHashcode(), no problems. But I don't want to use GetHashcode because if I have, for example, 109,125 elements in my list, apparently I'm already at 75% chance of collision? If it used aforementioned Equals() override, I think I'd be at 0%?

View 2 Replies


ADVERTISEMENT

.net - IEnumerable.Equals Seems To Call The Wrong Equals Method

May 23, 2012

I implemented a PagedModel class to wrap around IEnumerable to provide paging data for grids in my MVC app.I used Resharper's auto-generated Equality code telling it to check the data, total rows, page number, and page size fields.[code]I found the call to Equals(other._ModelData, _ModelData) peculiar, as AFAIK, this checks that it is the same object rather than that the contained items are the same. Because my tests were failing anyways, I went ahead and changed it to other._ModelData.Equals(_ModelData) with no success. Then I reflected into it at debug time and found that other._ ModelData.GetType().GetMethod("Equals",{GetType(Object)}).DeclaringType was Object! Obviously, that would result in the failed comparison.I came up with a solution to create a EnumerableEquals method which compares every item in the two enumerables to confirm the are the same, but it seems sloppy. Is there anything I can do to use the normal .Equals method? [code]

View 2 Replies

Create A Shared IEqualityComparer?

Jan 20, 2012

I'm doing some LINQ which requires a custom comparer, so I created a new class implementing IEqualityComparer. However, when I use it, I have to create an instance of it each time.

Dim oldListOnly = oldList.Except(newList, New MyEqualityComparer)
Dim newListOnly = newList.Except(oldList, New MyEqualityComparer)

I may be misunderstanding how .NET works, but it seems wasteful to create a new comparer each time. I really just want one instance (the equivalent of static in C++/C#).So I tried creating a "static" class, which in vb.net is a module. But got an 'Implements' not valid in Modules error.I then tried making the Equals and GetHashCode function shared methods on my class, but got this error: Methods that implement interface members cannot be declared 'Shared'.how to accomplish my goal here?

View 3 Replies

Implement IEqualityComparer<T> In Program?

Apr 8, 2009

I have the following function that loops through a directory and checks for a specified folder and file[code]...

View 1 Replies

.net - IEqualityComparer(of Object) For Intersect Or Except Not Working

Jun 15, 2012

enter code hereWant to remove items from a Main list , but give an error 'Unable to cast object of type <ExceptIterator>d__99'1['

[Code]...

View 1 Replies

Custom Generic.IEqualityComparer(Of T) - Compiler Errors

Jun 17, 2009

I am trying to implement a simple IEqulityComparer to use with LINQ collections. I have written the following code which is reduced to its simplest form for discussion purposes...

Public Structure bob
Dim SiteID As Integer
Dim fred As String
End Structure

[code]....

The problem that I have is that both functions throw the compiler warning "function 'getHashCode' (or 'Equals') shadows an overridable method in the base class 'Object'. To override the base class method, this method must be declared 'Overrides'."

However, if I declare them as Overrides, I get the error "function 'GetHashCode' cannot be declared Overrides because it does not override a function in the base class."!!I am also getting a compiler error on the "Implements" line to the effect that I must implement "getHashCode" but I presume that is a result of the first problem.

View 3 Replies

Use An Extension Method Instead Of Just Creating Non-extension Sub Or Function?

Dec 3, 2009

Why would I use an extension method instead of just creating non-extension sub or function?

For ex, I could have an extension function called IsNullOrEmptyOrAllSpaces on String, which does a check as its name implies. Or I can write a stand alone function that does the same thing. Other than having the extension show up in Intellisense, is there any advantage? Is a call to the extension quicker/more efficient than a call to a regular function?

View 8 Replies

VB Extension Property Instead Of Extension Method

Mar 16, 2012

I saw this post and I want to know if this is possible in VB. So like extension method, do extension properties exists in VB.Net? Here I've read they do, but cannot find any examples.

View 3 Replies

VS 2008 Hide Extension When It's Not Used As An Extension?

Dec 9, 2011

If i have an extension ... say...

vb
<System.Runtime.CompilerServices.Extension()> _
Public Sub Invert(ByVal b As Bitmap)

is there any way of hiding this from inteli-sense if it is not used as an extension?so that pressing ctl+space only triggers it if you go "bitmap.Inve.." rather than prompting on "Inve..."?

View 2 Replies

Using String.Equals In .net?

Aug 26, 2011

I am comapring 2 contract IDs, one is sent by the caller, the other is in a file and read into a variable. I use a string.Equals method to compare the contract IDs. The contract IDs compare successfully if the number in a contract ID is more than 1 away from the the other for example:

CTSRG0006 & CTSRG0005 = false

However

CTSRG0006 & CTSRG0007 = true

the code I am using for the comparison:

If fileContractID.Equals(calledContractID) Then
isFileValid = True
End If

View 1 Replies

VS 2005 - Only 1 Or 0 - ABS And EQUALS

Mar 29, 2010

I'm making a sort of VB.NET calculator that has all of the advanced features. I would also like it to have programming-style tips so that I won't have to build in things like ABS and EQUALS.

For example, ABS is sqrt(x ^ 2) and EQUALS is NOT(OZ(x-y)). NOT is 1 - OZ(x).
(x and y are the variables.)

I've come up with a few, but many rely on OZ(). OZ stands for 1/0. I need a formula that will return 1 if the value is <> 0, but 0 if it is equal to 0. I've worked on this for days but I can't come up with anything. Does anyone know how to do this?

View 39 Replies

What Is Different Between Equals And Referenceequals

Nov 8, 2009

i read it on internet article already, and tested it already. but it didnt show any difference.

View 3 Replies

.net - Using Two Equals Signs In VB 2008

Feb 6, 2012

In code, why wouldn't this work? intMax = intTopValue = 20

View 2 Replies

Difference Between Equals And = In LINQ?

Jun 10, 2010

What is the difference between Equals and = in LINQ?

Dim list As List(Of Foo) = (From a As Foo In FooList _
Join b As Bar In BarList _
On a.Something = b.Something _
Select a).ToList()

versus Dim list As List(Of Foo) = (From a As Foo In FooList _Join b As Bar In BarList _On a.Something Equals b.Something _Select a).ToList()

View 2 Replies

Equals Operator For Interfaces?

Dec 8, 2009

I have three classes which implement an Interface iComparesWith, and I wish there to be a single function such that each iComparesWith object of any of the three implementing classes should be able to compare itself with any other iComparesWith object, again, of any of the three implementing classes, and know if the two objects are equal. How can I code this so that the comparison code is only written once? Is it the case that I will have to create a top-level MustInherit class which implements the equality comparison, and have MustOverride methods for all of the methods of iComparesWith?

View 1 Replies

Overriding Equals For An Object With ID

Oct 11, 2011

Is it the best override for Equals (in VB.NET) for an object having an unique ID? [code]I took that example from the MSDN, but not entirely sure if from all points of view (including performance) is the better solution.[code]

View 2 Replies

Using Two Equals Signs In VB 2008?

Feb 13, 2011

In code, why wouldn't this work?

intMax = intTopValue = 20

View 1 Replies

Custom Structures And The Old Equals Sign?

Apr 2, 2011

Well I thought this was going to be easy, then the problem showed up.So I have a structure defined, as follows:

Structure Testing
Dim i as short
Dim j() as short

[code]....

And I need to do the same with all of the T2 array members.Now I get into writing the real code. Something like this:

For i = 1 to 100
Populate portions of T1 'not all values of T1 are used for each value of i
T2(i) = T1
Reset T1 to zero values and empty strings
Next i

So what is going wrong? After I set my T1 components back to zero, my T2(i).j has had all its 1-10 index values set to zero. Note that it is just the array, not the string s or the non-array i.Sure, I could write some code where I set T2(i).i = T1.i, and so on for each variable in the structure. But I have a feeling that is not the right way. There is some kind of equivalence going on between T2(i) and T1 in each loop. And I would would like to understand that more so I know how to really deal with it.

View 9 Replies

C# - Get The Number Of Rows Equals To A String In MS Reports?

Jan 13, 2012

Simple question but it is killing.

How do I write an expression, that return the number of rows where a column is equal something.

I can get the total rows like this: =Count(Fields!Foo.Value) and RowNumber("Rapporter")

But I can't get the number of rows where Foo is equal to someString

Foo is a type string.

View 1 Replies

Override 'Equals' In A Structure With All Shared Members?

Dec 5, 2011

I have a structure written in vb.net with all shared members. I need to override 'Equals', '==' and '!=' to avoid a warning.

View 4 Replies

String.equals() And Apostrophe - Execution Code ?

Oct 27, 2010

I just ran into what I consider a very strange issue in the execution of some code that I thought I had completely well-understood.

Basically, I was using this kind of notation:

If strOne.equals(strTwo) Then

rather than

If strOne = strTwo Then

I came from a c and java background, and using the '=' operator for comparison has always made me cringe, so I've used the .equals() comparison function thinking that it was equivalent. But just now some of my code broke. It encountered a string containing "Eagle's Nest: Dawn Patrol", used the .equals() to compare it to "Eagle's Nest: Dawn Patrol" and declared them not equal. I changed the code to use '=' rather than '.equals()' and it declared them equal. I also did this:

If strOne.Replace("'", "").Equals(strTwo.Replace("'", "")) Then

And again, it declared them equal.

This has me a little rattled because my code is filled with the use of .equals(), and I've used it assuming that it was no different than writing strOne = strTwo. I've scanned the interweb looking for information about this. I have not found any information about odd interactions between the apostrophe (or other) character(s) and .equals(). Microsoft's documentation does not hint at any subtle differences. how .equals() differs from '='

View 4 Replies

Use A Loop To Sum Until Cumulative Total Equals A Specified Figure?

Apr 29, 2010

I am trying to filter a dataset by adding together numbers within a specified field (say field1) within the dataset until i reach a specified number.

The filtered dataset should either be precisley equal to the number or most likley less than. In short if a row exceeds the number it should revert to the previous record.

I have no probs with general filtering and using data adapters to access the data. But im struggerling with the loop side of things.

View 4 Replies

VS 2008 Fill DataAdapter Parameter With 'CONTAINS' Instead Of 'EQUALS'

Nov 9, 2010

[code]Where I add my parameter, I am trying to have it pull records that contain the text that is in the jpDescTextBox instead of being exactly equal to it. I have tried using wildcards such as * and %.

View 7 Replies

Testing For Month Equals Zero With The Values Returned By An SQL Query?

Aug 3, 2011

I've got the hang of using dates now, but I haven't learned how to test multiple results of a query. I can return a value from a query, but I'm unsure how to return many without putting them into a data grid view or an object on the form. (In Visual Basic)I have to check when a particular investment needs to be bought or sold, there will be more than one in almost every case. I've got the function to find out the interval between the months, checking if the asset is bought or sold in month x, but I'm unsure how to test it against multiple assets at once - nor do I know the best way to do so.

View 12 Replies

.net - Why Have Equals Methods Have All Started Throwing Invalid Cast Exceptions

Mar 5, 2010

Several of my overriden Equals methods have started throwing Invalid Cast Exceptions -

Unable to cast object of type 'System.DBNull' to type Common.ResolveUser'.

This occurs when binding List (of T) (where T is of type ResolveUser in this case) to a combo.

Equals Method:

Public Overrides Function Equals(ByVal obj As Object) As Boolean
Dim i As ResolveUser = CType(obj, ResolveUser)
If i.UniqueResolveID = UniqueResolveID Then Return True

[Code]......

View 2 Replies

Getting An Other File Extension As Default Instead Of All Files As Default Extension?

Jun 25, 2009

I am using VB 08 running an openfiledialogue wanting to get the result of the GDS file (*.gds) to be the default extension at the drop down menu instead of All file when the openfiledialogue box opens.

I coded it with:

OpenFileDialogue.Filter = "GDS File(*.gds)|*.gds|All files|*.*"

but the results i get in the open file dialogue box remains as all files being in the drop down menu as the default file extension. How to i set it to ".gds" format?

View 1 Replies

VB Coding - Program That Calculates Minutes Worked Times Pay Rate Equals Amount Of Weekly Pay

Mar 16, 2011

I am trying to build a program that calculates the minutes worked times pay rate equals amount of weekly pay this is what I got but it doesn't calculate

CODE:

View 3 Replies

Make The Form Size Automatic Setting The Size Equals To The Screen?

Jun 9, 2011

How to make the form size automatic setting the size equals to the screen. or Maximize the whole form including the form components.

View 3 Replies

See If The Values A User Inputs Into 2 Textboxs Equals The Values Assigned To A Picture?

Apr 21, 2010

I want to be able to see if the values a user inputs into 2 textboxs equals the values assigned to a picture. I put these values in the picture's name and tag. Also the picturebox is getting the image from a random function correlating to an imagelist. How would i go about thisI thought of maybe using a checkbox and coding

If picturebox1.image.tag = ("12") _
and textbox1.text = 1 _
and textbox2.text = 2 Then
checkbox1.checked = true

unfortunatly when i debug it says the picturebox1.image.tag = Nothing

View 3 Replies

== Versus Object.Equals(object) In .NET?

Sep 22, 2008

when I was a comparitive novice to the novice I am right now, I used to think that these two things were syntactic sugar for each other, ie. that using one over the other was simply a personal preference. Over time, I'm come to find that these two are not the same thing, even in a default implementation (see this and this). To further confuse the matter, each can be overriden/overloaded seperately to have completely different meanings.

View 6 Replies







Copyrights 2005-15 www.BigResource.com, All rights reserved