.net - Differences Between VB TryCast And C# "as" Operator When Using LINQ?
Aug 19, 2009
I have a LINQ query to retrieve the maximum value of an integer column. The column is defined as NOT NULL in the database. However, when using the MAX aggregate function in SQL you will get a NULL result if no rows are returned by the query.Here is a sample LINQ query I am using against the Northwind database to demonstrate what I am doing.
var maxValue = (from p in nw.Products
where p.ProductID < 0
select p.ProductID as int?).Max();
C# correctly parses this query and maxValue has a type of int?. Furthermore, the SQL that is generated is perfect:
SELECT MAX([t0].[ProductID]) AS [value]
FROM [Products] AS [t0]
WHERE [t0].[ProductID] < @p0
The question is, how do I code this using VB.NET and get identical results? If I do a straight translation:
dim maxValue = (from p in Products
where p.ProductID < 0
select TryCast(p.ProductID, integer?)).Max()
I get a compile error. TryCast will only work with reference types, not value types. TryCast & "as" are slightly different in this respect. C# does a little extra work with boxing to handle value types. So, my next solution is to use CType instead of TryCast:
dim maxValue = (from p in Products
where p.ProductID > 0
select CType(p.ProductID, integer?)).Max()
This works, but it generates the following SQL:
SELECT MAX([t1].[value]) AS [value]
FROM (
SELECT [t0].[ProductID] AS [value], [t0].[ProductID]
[code]....
While this is correct, it is not very clean. Granted, in this particular case SQL Server would probably optimize the query it to be the same as the C# version, I can envisage situations where this might not be the case. Interestingly, in the C# version, if I use a normal cast (i.e. (int?)p.ProductID) instead of using the "as" operator I get the same SQL as the VB version. if there is a way to generate the optimal SQL in VB for this type of query?
View 6 Replies
ADVERTISEMENT
Jun 29, 2011
After I have programmed several projects in VB.Net I to my surprise discovered that there are some more than subtle differences between C# and VB.NET LINQ usage.For example, if we want to group elements by multiple properties (columns) we need to create a new anonymous type explicitly:
var procs = from c in Process.GetProcesses()
group c by new {c.BasePriority, c.Id} into d
select d;
whereas in VB.NET more straightforward syntax will already do:
Dim b = From c In Process.GetProcesses()
Group c By c.BasePriority, c.Id Into Group
Select Group
So, one does not need to create a type with "new" here. What are the other differences? good comparison between the LINQ syntax in C# and VB.NET?
View 2 Replies
Mar 16, 2011
When using VB.NET I can do the following:
Public Function GetUser(ByVal ID as Integer) As User
Dim dc As New YesEntities()
Return (From u in dc.Users Where u.ID = ID).Single()
End Function
And on my .aspx/.vbhtml page I can access the user's department name like this:
Dim DepartmentName as String = new User().GetUser(12).Department.Name
[Code]...
View 1 Replies
May 22, 2009
I need to build a dynamic linq query with or operators. I have seen PredicateBuilder but that is in C# and my project is in VB. Basically I need to build a WHERE clause similar to this:
Where((this = 1 AND that = 2) OR (this = 1 AND that = 4) OR (this = 2 AND that = 4))
but the problem is the number will have to be determined dynamically at runtime, and added using a loop, like
for each item in myItems
query = query.OR (this = item.a AND this = item.b)
next
View 2 Replies
May 17, 2012
i am downloading data from xml using linq library those data i want to add them on a textblock item
TextBlock1.Text = TextBlock1.Text & result
but it has an error :
Error 1 Operator '&' is not defined for types 'String' and 'System.Xml.Linq.XElement'.
When i am changing this line to :
TextBlock1.Text = TextBlock1.Text & result.Tostring
it works but it adds this data :
"<"data> data <"/data>
instead of :
hello
View 1 Replies
Aug 28, 2010
Possible Duplicate: Why use TryCast instead of Directcast ? I want to know about the trycast and direct cast in vb.net. What is the difference between them?
View 2 Replies
Feb 23, 2010
What is the difference between DirectCast and TryCast? Can someone illustrate it in very simple words along with an example?
View 5 Replies
Aug 19, 2010
I find this behavior of TryCast in .NET 4.0 / VS 2010 rather confusing. In my understanding TryCast works like DirectCast, but will return Nothing instead of throwing an exception if a cast is not possible. VS 2010 / .NET 4
[Code]...
View 1 Replies
Apr 24, 2010
Ever since I moved from VB6 to VB.NET somewhere in 2005, I've been using CType to do casting from one data type to another. I do this because it is simply faster to type, used to exist in VB6 and I do not know why I have to be using DirectCast if there is apparently no difference between them.I use TryCast once in a while because I understand that sometimes casting can fail. I however cannot get the difference between CType and DirectCast.
View 3 Replies
Jan 30, 2012
I want to see if try cast can convert user entered answer to the type I have specified. Here's what I have: Dim t as type = GetType(myType) Dim ans = console.readline() If TryCast(ans, t) <> Nothing Then ... 'Doesn't work` In the example above the intelisense doesn't even show t. How to make it work?
View 4 Replies
Jun 17, 2009
Here is a test program I wrote to explore a facet of object casting ...
Module Module1
Sub Main()
Dim class1 As MyBaseClass = New MyBaseClass()
Dim class2 As MyInheritedClass = New MyInheritedClass()
Dim class3 As MyBaseClass = Nothing
[Code] .....
The problem comes with the TryCast statement on class3. My intention is that class3 remains as a baseclass, but when the TryCast is applied, class3 morphs itself into an Inherited class which is not what I wanted. So is there a gap in my OOP/VB.NET knowledge and this action is legitimate or should class3 still be regarded as a base class?
View 6 Replies
Jan 27, 2010
I am tightening up my coding with the Option Strict set to ON. It has now produced alot of errors. An example of this is:
If AllocatedDGV.Rows(i).Cells("RoomNumber").Value = RoomsAvailableDGV.Rows(j).Cells("RoomName").Value Then
It gives me the following error: Option Strict On disallows operands of type Object for operator '='. Use the 'Is' operator to test for object identity.
View 6 Replies
Apr 6, 2012
I need to write an interface to get data to/from our data files.
We have a low level class that holds field values for each record read from the files.
This just holds two values, the value read from the file (DBValue) and the updated value that may need to be written back to the file (CurrentValue).
These values may be any of the standard value types (integer, date etc) or a string.
Either value (DBValue or CurrentValue) may be null if not defined.
I have written the class to manage this data which works fine while option strict is NOT on.
But we have an office policy of having option strict on all the time.
When I put option strict on, my object value comparisons fail with the error: "Option Strict On disallows operands of type Object for operator '='. Use the 'Is' operator to test for object identity."
Question, how should I change the following code to handle option strict on ...
This is all running on Visual Studio 2010
[Code]...
View 1 Replies
Mar 10, 2009
Possible Duplicate: Is there a conditional ternary operator in VB.NET?
Can we use Coalesce operator(??) and conditional ternary operator(:) in VB.NET as in C#?
View 5 Replies
Nov 11, 2009
I want to perform equality comparison in VB.NET and cannot get it to work. Error: value of type Boolean can not be converted to System.Drawing.PointF
[code]...
View 4 Replies
Aug 22, 2010
What are the differences between 32 and 64-bit .NET (4) applications?Often 32-bit applications have problems running on 64-bit machines and conversely. I know I can declare an integer as int32 and int64 (certainly int64 on 32-bit systems make problems). Are there other differences between programming an 32 OR 64-bit or a both 32 AND 64-bit compatible application?
View 2 Replies
Aug 10, 2010
Would like to build an application and was wondering why someone would choose one language over another.Also is one language used more for a particular type of programming then another (For example, is VB used more for business or Windows development then for web development ?)
View 1 Replies
Aug 14, 2009
I am currently learning visual basic 5 on my home computer. I was wondering if someone could tell me what the major differences are between Visual basic 5 and the latest/new editions of VB.
View 3 Replies
Jan 14, 2010
We have legacy character codes that we want to store as numbers in a new system. To increase readibility and general understanding in the code for devs making the migration, I want to do Enums like this..
[Code]...
With this setup, the code will be readable (imagine If Record.Status = Status.Open), and yet the values will be stored in the database as small numbers so it will be efficient. However... I am a VB.NET guy, but everybody wants to code in C#, so I need this sort of structure in C#.After Googling, I discovered the the general .NET equivalent of AscW is Convert.ToInt32("C"). When I try to use that statement in an enum, I get the compiler error "Constant Expression Required".
View 2 Replies
Dec 13, 2011
in order for me to get help on me and my programming partners vb6 rpg, I have to upgrade the project to the vb.net platform, and I am worried that the IDE interface that is used to program the vb side of the rpg is different, so I am wanting to ask any of you if there are any significant changes to the IDE or if it is relatively the same as it was in vb6... I am also hoping that someone here can also help me to see what is wrong with my load/save function... I now thought of something to try to see if that is the issue or not, but the code is still vb6 code, the only difference will be that the program will be upgraded to the .net platform, so if that changes anything in the code, then I am not aware of this as of yet, because I am still downloading the visual studios 2010 express iso right now... so I do not know for sure yet what will be changed.
View 3 Replies
Dec 18, 2011
Does anyone know how to implement in VB an algorithm for final differences that changes the network (the matrix) during the computation (decrease its dimensions)?
View 1 Replies
Aug 26, 2011
Today I was playing around with Entity Framework and I've read that the generated IL for C# was different than VB.NET for the following code:
[code]...
As it seems the VB.NET version of this code will contact the database every time the code is executed while the C# version will retrieve the entities from the cache when the code is executed multiple times.Why would they make both languages behave in such a different manner?It was my misconception that both languages just differed in syntax and had almost exactly the same generated IL.Are there any more examples where both languages generated such different IL?
View 2 Replies
Jan 17, 2011
what can C# do that VB.Net can't ? VB.net vs C#.net
main differences between visual basic and C# as well as the pros and cons between the two?
View 1 Replies
Jul 18, 2011
Well i want to compare 2 strings (version one and version two) and get the differences in a format that i can convert to html on my own, like you can view how a post was edited here on stack*overflow* or like svn tracks differences between revisions....
It must be full managed code library.
Like this JavaScript but i need to do it on the server-side..
View 2 Replies
Mar 9, 2012
I've heard that the c# garbage collector can be 'more aggressive' than it's vb.net counterpart. Is this true? Are there any other differences in how garbage collection is run in vb.net vs. c#?
View 5 Replies
Oct 26, 2011
i'm using Enumerable.Except to check if a DataTable in memory is in sync with the table in database.
The background is: this DataTable and other frequently used tables are stored in the Cache of a WebApplication. But meanwhile i'm convinced that this is not a good approach because it's a source for nasty errors that are difficult to reproduce/debug.
Therefore i've created a function that checks if database and memory are in sync, otherwise an error-log will be created. This works perfectly. If there is a row in memory that is not in database, this row will be shown below "Difference in database", the same applies in reverse. But if rows exist in both datasources(the PK idRMA) and some values differ, the log will contain this row in two versions(below "Difference in database" and "Difference in database"). It is not easy to see the differences on the first sight.
Q: Is it possible to select only the properties that caused Except to think that first sequence is not in second?
This is the the complete function(the first lines are relevant):
Public Shared Sub CheckRmaMemoryInSyncWithDB()
Dim inSyncText As String
Dim color As Drawing.Color
[Code]......
View 3 Replies
Jan 13, 2010
I am using asp.net and the .net framework 2.0. I may be able to upgrade the servers to 3.5 if the solution is compelling enough. Here is the problem. I have two pieces of xml. I'll refer to piece number 1 as the template and piece number 2 as the actual. Here's a basic example:
[Code]...
View 2 Replies
Nov 16, 2011
I just found an interesting problem between translating some data:
VB.NET: CByte(4) << 8 Returns 4
But C#: (byte)4 << 8 Returns 1024
[code].....
View 3 Replies
Sep 24, 2009
I have 2 text boxes and I load a text file in to each box, the files contents are "almost" exactly the same but not 100%. how would i compare the 2 against eachother and output the difference in percentage? I've made a program once before it was pretty cool it did all these things and it was in VB.Net i just cant remember how i did it.. i do know i counted how many of the sames words exist but i cant remember what else i did.
View 10 Replies
Feb 17, 2011
Compare differences between lists?I have two sets of lists below[code]...
View 1 Replies