Best way to check for an element in an array?
Taylor Hillegeist via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Mon Apr 21 20:25:39 PDT 2014
So I find myself Doing this kind of thing very frequently. I have
a Array of Somethings and i want to see if "something specific"
is inside the array. I wrote a template for it. but is this the
best way to do this kind of thing. I feel like it doesn't help
with readability. Is there a better way? Maybe i missed something
in the std library.
import std.stdio;
template FNDR(T){
bool isIn(T Element, T[] Array){
bool rtn=false;
foreach(T ArrayElement; Array){
if(Element==ArrayElement){
rtn=true;
}
}
return rtn;
}
}
void main(string[] args)
{
int[3] stuff=[0,1,2];
if (FNDR!int.isIn(2,stuff))
{
writeln("Hello World!");
}
}
Is there a way maybe to make it look like this?
import std.stdio;
template FNDR(T){
bool contains(T[] Array,T Element){
bool rtn=false;
foreach(T ArrayElement; Array){
if(Element==ArrayElement){
rtn=true;
}
}
return rtn;
}
}
void main(string[] args)
{
int[3] stuff=[0,1,2];
if (stuff.contains(2)) // Much clean!
stuff.FNDR!int.contains(2) doesn't work
{
writeln("Hello World!");
}
}
I'm interested in what you guys think? what is the cleanest way
to do this?
More information about the Digitalmars-d-learn
mailing list