Which are the equivalent of the following operators from VB.Net to C#?
- UBound()
- LBound()
- IsNothing()
- Chr()
- Len()
- UCase()
- LCase()
- Left()
- Right()
- RTrim()
- LTrim()
- Trim()
- Mid()
- Replace()
- Split()
- Join()
- MsgBox()
- IIF()
Which are the equivalent of the following operators from VB.Net to C#?
VB C#
UBound() = yourArray.GetUpperBound(0) or yourArray.Length for one-dimesional arrays
LBound() = yourArray.GetLowerBound(0)
IsNothing() = Object.ReferenceEquals(obj,null)
Chr() = Convert.ToChar()
Len() = "string".Length
UCase() = "string".ToUpper()
LCase() = "string".ToLower()
Left() = "string".Substring(0, length)
Right() = "string".Substring("string".Length - desiredLength)
RTrim() = "string".TrimEnd()
LTrim() = "string".TrimStart()
Trim() = "string".Trim()
Mid() = "string".Substring(start, length)
Replace() = "string".Replace()
Split() = "string".Split()
Join() = String.Join()
MsgBox() = MessageBox.Show()
IIF() = (boolean_condition ? "true" : "false")
Notes
yourArray.GetUpperBound(0) vs yourArray.Length: if the array is zero-length, GetUpperBound will return -1, while Length will return 0. UBound() in VB.NET will return -1 for zero-length arrays.Mid("asdf",2,2) corresponds to "asdf".SubString(1,2).? is not the exact equivalent of IIf because IIf always evaluates both arguments, and ? only evaluates the one it needs. This could matter if there are side effects of the evaluation ~ shudder!Len(), UCase(), LCase(), Right(), RTrim(), and Trim(), will treat an argument of Nothing (Null in c#) as being equivalent to a zero-length string. Running string methods on Nothing will, of course, throw an exception.Nothing to the classic VB Mid() and Replace() functions. Instead of throwing an exception, these will return Nothing.? is not the exact equivalent of IIf because IIf always evaluates both arguments, and ? only evaluates the one it needs. This could matter if there are side effects of the evaluation. I don't think there is a direct equivalent of IIf in C# - I think you'd need to write a custom function.UBound() "array".Length
LBound()
IsNothing(): "object" == null
Chr() (char)"N"
Len() "string".Length
UCase() "string".ToUpper()
LCase() "string".ToLower()
Left() "string".Substring(from, to)
Right() "string".Substring(from, to)
RTrim() "string".TrimEnd()
LTrim() "string".TrimStart()
Trim() "string".Trim()
Mid() "string".Substring(from, to)
Replace() "string".Replace()
Split() "string".Split()
Join() String.Join()
MsgBox() MessageBox.Show()
IIF() validate ? iftrue : iffalse;
All these functions are member methods of the Microsoft.VisualBasic.Information class, in the Microsoft.VisualBasic assembly, so you can use them directly. However, most of them have C# equivalents, or non language specific equivalents in core .NET framework classes :
Array.GetUpperBoundArray.GetLowerBound== null(char)intValue (cast)String.LengthString.ToUpperString.ToLowerString.Substring (with different arguments)String.TrimEndString.TrimStartString.TrimString.ReplaceString.SplitString.JoinMessageBox.Showcondition ? valueIfTrue : valueIfFalse (conditional operator)Links
First of all, most of those are NOT operators. They are functions, and the functions are only included in VB.Net for compatibility reasons. That means you shouldn't use them in VB.net either, and instead use the equivalents provided by the new API.
arrayVar.LengthIs Nothing in VB.Net and == null in C#Convert.ToChar() or (char)someVarstringVar.Length use this in VB toostringVar.ToUpper() use this in VB toostringVar.ToLower() use this in VB toostringVar.Substring(0, n) use this in VB toostringVar.Substring(stringVar.Length - n) use this in VB toostringVar.TrimEnd() use this in VB toostringVar.TrimStart() use this in VB toostringVar.Trim() use this in VB toostringVar.Substring(n, m) use this in VB toostringVar.Replace() use this in VB toostringVar.Split() use this in VB tooString.Join() use this in VB tooMessageBox.Show()(condition) ? truepart : falsepart - note that there are some differences, because "?" is an operator and not a functionOne more addition to this could be IndexOf() function to Find String within string
An example below...
string MainString = "String Manipulation";
string SearchString = "pul";
int FirstChr = MainString.IndexOf(SearchString);
//SHOWS START POSITION OF STRING
MessageBox.Show("Found at : " + FirstChr );