|
To think about it, my logic was little back ward
sip slowly - nurse
Look after the kids - Maid
My girl - Nursemaid
cheers,
Super
------------------------------------------
Too much of good is bad,mix some evil in it
|
|
|
|
|
Doesn't matter, you got it!
I hadn't seen your post when I slammed the "Post message" button on the solution, I was in a hurry to help Herself fix lunch.
Sent from my Amstrad PC 1640
Never throw anything away, Griff
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
int nThatVeryLongVariableYourMateNamed = 0;
if(nThatVeryLongVariableYourMateNamed != (0,1,2))
{
}
Instead of having to do like:
int nThatVeryLongVariableYourMateNamed = 0;
if(nThatVeryLongVariableYourMateNamed != 0 &&
nThatVeryLongVariableYourMateNamed != 1 &&
nThatVeryLongVariableYourMateNamed != 2
)
{
}
-VUNIC
|
|
|
|
|
You could do that as an extension method in C# pretty easily. The syntax would be something like
if (nThatVeryLongVariableYourMateNamed.Excludes(0,1,2))
This space for rent
|
|
|
|
|
Starting to think people post kid pics in their profiles because that was the last time they were cute - Jeremy Falcon.
|
|
|
|
|
Not nearly as performant as the original. Though, if avoiding repetition is the OPs goal, a couple of other C# possibilities include:
int n = nThatVeryLongVariableYourMateNamed;
if (n == 0 || n == 1 || n == 2)
{
}
switch(nThatVeryLongVariableYourMateNamed)
{
case 0:
case 1
case 2
break;
}
private static readonly HashSet<int> validValues = new HashSet<int> { 0, 1, 2};
.
.
.
if (validValues.Contains(nThatVeryLongVariableYourMateNamed))
{
}
if (new int[] { 0, 1, 2}.Contains(nThatVeryLongVariableYourMateNamed))
{
}
In answer to the original question, I think there are some languages that support syntactic sugar for creating/checking sets. Though, none I commonly use. If I recall, in my hazy memory, I think the largely dead PASCAL language used to have such support
In general, it's not much of a problem. Almost all languages, have a decently concise syntax for creating/checking sets. They simply do away with the fluff of formalizing it as a separate concept in the language.
|
|
|
|
|
Yes - Delphi does:
Result: Integer;
...
if aPrompt and not (Result in [0, 1, 2, 4]) then
...
Not quite dead BTW - that's production code right there -> but its getting rarer these days.
G
|
|
|
|
|
Copy paste from SOverflow
static class Extensions
{
public static bool In<T>(this T item, params T[] items)
{
if (items == null)
throw new ArgumentNullException("items");
return items.Contains(item);
}
}
class Program
{
static void Main()
{
int myValue = 1;
if (myValue.In(1, 2, 3))
string ds = "Bob";
if (ds.In("andy", "joel", "matt"))
}
}
modified 20-Oct-19 21:02pm.
|
|
|
|
|
As Pete said, trivial to implement in C#:
public static class SomeExtensions
{
public static bool IsOneOf<T>(this T value, params T[] options)
{
if (options is null || options.Length == 0) return false;
return Array.IndexOf(options, value) != -1;
}
public static bool IsNotOneOf<T>(this T value, params T[] options)
{
if (options is null || options.Length == 0) return true;
return Array.IndexOf(options, value) == -1;
}
}
...
if (nThatVeryLongVariableYourMateNamed.IsNotOneOf(0, 1, 2))
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Now that's nice. I'm going to have to borrow that
"There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult." - C.A.R. Hoare
Home | LinkedIn | Google+ | Twitter
|
|
|
|
|
Fortran computed GOTO comes pretty close . . . 11 CONTROL STATEMENTS[^]
There - that'll flush out the zealots.
Treading on the toes of giants . . .
|
|
|
|
|
Put the values in a Hashset.
|
|
|
|
|
C++ equivalent:
bool contains(int var, std::vector<int> ints) {
for (int x :ints) if (var == x) return true;
return false;
}
...
int veryLongVarName = 12;
if (contains(veryLongVarName, { 1, 2, 3 })) {
OutputDebugString(L"Matches! Now we have fire!");
}
|
|
|
|
|
{
int localVLVYMN = thatVeryLongVariableYourMateNamed;
} As a single block, so that your temp-int is limited in scope. Also spitting on the hungarian notation - I would not tough that code with a polearm
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
For extra C#7 goodness:
{
ref int localVLVYMN = ref thatVeryLongVariableYourMateNamed;
...
}
Now any changes to your alias will be reflected in the original.
An added benefit for large struct s: you avoid making a copy of the value.
Ref return values and ref locals (C# Guide) | Microsoft Docs[^]
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Richard Deeming wrote: Now any changes to your alias will be reflected in the original. More ways to obfuscate my code
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
More job security.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Can't argue with that
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
Wasn't the old visual basic capable to use WITH?
|
|
|
|
|
You remember the syntax?
Full Reset
|
|
|
|
|
In Python you can use range().
So, for [0,1,2] you would do either;
if nThatVeryLongVariableYourMateNamed not in [0,1,2]:
or
if nThatVeryLongVariableYourMateNamed not in range(3):
or
if nThatVeryLongVariableYourMateNamed not in range(0,3):
or
if nThatVeryLongVariableYourMateNamed not in range(0,3,1):
|
|
|
|
|
Cool
Full Reset
|
|
|
|
|
Why else, if you miss paying your bill, do they send you
Payment overdue - reminder notice ?
Software rusts. Simon Stephenson, ca 1994. So does this signature. me, 2012
|
|
|
|
|
You are just seeing things. If it were 'Payment reminder - overdue notice'...
I have lived with several Zen masters - all of them were cats.
His last invention was an evil Lasagna. It didn't kill anyone, and it actually tasted pretty good.
|
|
|
|
|
Be glad it isn't:
Persona non Grata - ready for termination
|
|
|
|