List<string> list=new List<string>();for(int i=0;i<100;i++){
list.add(i+"");
}for(int i=0;i<300;i++){
foreach(string a in list){
if(a==i+"")
//做事
}}上面这种是一对多的关系,我希望有更快,比得更少的做法。正面是我的做法
bool flag=false;
string str=null;
List<string> list=new List<string>();for(int i=0;i<100;i++){
list.add(i+"");
}for(int i=0;i<300;i++){
foreach(string a in list){
if(a==i+""){
flag=true;
//做事
str=a;
}
}
if(flag)//找到一个删除一个,这样越来越小。
list.Remove(a);
}
但是,这样一样很慢,求高手指教!!!
bool flag=false;
string str=null;
List<string> list=new List<string>();for(int i=0;i<100;i++){
list.add(i+"");
}for(int i=0;i<300;i++){
foreach(string a in list){
if(a==i+""){
flag=true;
//做事
str=a;
}
}
if(flag)//找到一个删除一个,这样越来越小。
list.Remove(str);
}上面list.Remove(a); 改成list.Remove(str);
bool flag=false;
string str=null;
List<string> list=new List<string>();for(int i=0;i<100;i++){
list.add(i+"");
}for(int i=0;i<300;i++){
foreach(string a in list){
if(a==i+""){
flag=true;
//做事
str=a;
}
else
flag=false;
}
if(flag)//找到一个删除一个,这样越来越小。
list.Remove(str);
}加上了一个else
Dictionary<string, int> strDict = new Dictionary<string, int>();for(int i=0;i <100;i++)
{
list.add(i+"");
strDict[i+""] = i;
}for(int i=0;i<300;i++)
{
bool flag=false;
int index;
if(strDict.TryGet(i+"", out index))
{
flag=true;
//做事
str = i + "";
}
if(flag)//找到一个删除一个,这样越来越小。
list.RemoveAt(index);
}
Dictionary <string, int> strDict = new Dictionary <string, int>();for(int i=0;i <100;i++)
{
list.add(i+"");
strDict[i+""] = i;
}for(int i=0;i <300;i++)
{
bool flag=false;
int index;
if(strDict.TryGet(i+"", out index))
{
flag=true;
//做事
str = i + "";
} }
Distinct(IEqualityComparer<UMP>) 通过使用指定的 IEqualityComparer<T> 对值进行比较返回序列中的非重复元素。IEnumerable<T>.Elements 方法 Elements() 返回源集合中每个元素和文档的子元素的集合。
Elements(XName) 返回源集合中经过筛选的每个元素和文档的子元素集合。集合中只包括具有匹配 XName 的元素。IEnumerable<T>.Except 方法 Except(IEnumerable<UMP>) 通过使用默认的相等比较器对值进行比较生成两个序列的差集。
Except(IEnumerable<UMP>, IEqualityComparer<UMP>) 通过使用指定的 IEqualityComparer<T> 对值进行比较产生两个序列的差集。IEnumerable<T>.Intersect 方法 Intersect(IEnumerable<UMP>) 通过使用默认的相等比较器对值进行比较生成两个序列的交集。
Intersect(IEnumerable<UMP>, IEqualityComparer<UMP>) 通过使用指定的 IEqualityComparer<T> 对值进行比较以生成两个序列的交集。IEnumerable<T>.SkipWhile 方法 SkipWhile(Func<UMP, Boolean>) 只要满足指定的条件,就跳过序列中的元素,然后返回剩余元素。
SkipWhile(Func<UMP, Int32, Boolean>) 只要满足指定的条件,就跳过序列中的元素,然后返回剩余元素。将在谓词函数的逻辑中使用元素的索引。