Comparing Multiple Values

Frank Benoit keinfarbton at googlemail.com
Tue Mar 11 04:15:44 PDT 2008


okibi schrieb:
> I've looked all over the site but can't seem to find if D supports any kind of like IN statement for comparisons. For example, I can do the following in SQL:
> 
> select *
> from table
> where value in (1,2,3)
> 
> And it will compare it to 1, 2, and 3. Is this possible to do within D's if statement? I hate to go about it as such:
> 
> if (value == 1 || value == 2 || value == 3)
>     dosomething();
> 
> Just seems like this could be written better. Can anyone give me any pointers?
> 
> Thanks!

*untested*

bool isOneOf(T)( T value, T[] compares ... ){
	foreach( c; compares ){
		if( value == c ) return true;
	}
	return false;
}
if ( isOneOf( value, 1, 2, 3 ))
     dosomething();


More information about the Digitalmars-d-learn mailing list