假设
string strArrs =new ArrayList();
strArrs.Add(“a”);
strArrs.Add("abc");
strArrs.Add("bcd");
strArrs.Add("cde");
strArrs.Add("def");
现在要找出包含string s="bc"的项的集合
求解!
string strArrs =new ArrayList();
strArrs.Add(“a”);
strArrs.Add("abc");
strArrs.Add("bcd");
strArrs.Add("cde");
strArrs.Add("def");
现在要找出包含string s="bc"的项的集合
求解!
List<string> strArrs = new List<string>();
strArrs.Add("a");
strArrs.Add("abc");
strArrs.Add("bcd");
strArrs.Add("cde");
strArrs.Add("def");
List<string> resault = strArrs.FindAll(new Predicate<string>(FindStringInArray));/// <summary>
/// 用于Predicate泛型委托
/// </summary>
/// <param name="target"></param>
/// <returns></returns>
private static bool FindStringInArray(string target)
{
if (target.IndexOf("bc") >= 0)
{
return true;
}
else
{
return false;
}
}
推荐你使用泛型
using System;
using System.Collections.Generic;
using System.Text;
namespace Test
{
class Program
{
static void Main(string[] args)
{
List<string> strArrs = new List<string>();
strArrs.Add("a");
strArrs.Add("abc");
strArrs.Add("bcd");
strArrs.Add("cde");
strArrs.Add("def");
List<string> resault = strArrs.FindAll(new Predicate<string>(FindStringInArray));
foreach (string s in resault)
{
Console.WriteLine(s);
}
Console.Read();
} /// <summary>
/// 用于Predicate泛型委托
/// </summary>
/// <param name="target"></param>
/// <returns></returns>
private static bool FindStringInArray(string target)
{
if (target.IndexOf("bc") >= 0)
{
return true;
}
else
{
return false;
}
}
}
}
//给你个完整的,方便你看
using System;
using System.Text.RegularExpressions;
using System.Collections;
public class Test
{ public static void GetObject(string strIdent, out ArrayList Contain, out ArrayList NoContain, params string[] strArrs)
{
Contain = new ArrayList();
NoContain = new ArrayList(); for (int i = 0; i < strArrs.Length; i++)
{
string strCurrentArr = strArrs[i];
Match m = Regex.Match(strCurrentArr, strIdent);
if (m.Success)
{
Contain.Add(strCurrentArr);
}
else
{
NoContain.Add(strCurrentArr);
}
}
} static void Main(string[] args)
{
ArrayList Contain, NoContain;
GetObject("1", out Contain, out NoContain, "232", "4", "123", "321", "343"); //遍历包含的数据
Console.WriteLine("包含1的数据项\n");
foreach (string str in Contain)
{
Console.WriteLine(str);
} //反之
Console.WriteLine("\n不包含1的数据项");
foreach (string str in NoContain)
{
Console.WriteLine(str);
}
Console.ReadKey();
}
}
这个问题我在加hackztx私聊的时候已经帮我解决了,非常诚恳,所以想用专家分答谢他,没想到这么快这么多朋友参与,再加多100分奉上其他朋友,刚转到C#,头都大了,很想多认识几个愿意援手的朋友,QQ13569206,msnciskyATcnyudotnet
就是有个问题,我的这个是套在好几层循环中的,所以最初就是想知道有没有不用循环的,但是我没有想到list可以这么用,实话说,接触到的一个ILIST<T>也是朋友封套后给我用,没有深入接触到过
using System;
using System.Collections.Generic;public class Example
{
public static void Main()
{
List<string> dinosaurs = new List<string>(); dinosaurs.Add("Compsognathus");
dinosaurs.Add("Amargasaurus");
dinosaurs.Add("Oviraptor");
dinosaurs.Add("Velociraptor");
dinosaurs.Add("Deinonychus");
dinosaurs.Add("Dilophosaurus");
dinosaurs.Add("Gallimimus");
dinosaurs.Add("Triceratops"); Console.WriteLine();
foreach(string dinosaur in dinosaurs)
{
Console.WriteLine(dinosaur);
} Console.WriteLine("\nTrueForAll(EndsWithSaurus): {0}",
dinosaurs.TrueForAll(EndsWithSaurus)); Console.WriteLine("\nFind(EndsWithSaurus): {0}",
dinosaurs.Find(EndsWithSaurus)); Console.WriteLine("\nFindLast(EndsWithSaurus): {0}",
dinosaurs.FindLast(EndsWithSaurus)); Console.WriteLine("\nFindAll(EndsWithSaurus):");
List<string> sublist = dinosaurs.FindAll(EndsWithSaurus); foreach(string dinosaur in sublist)
{
Console.WriteLine(dinosaur);
} Console.WriteLine(
"\n{0} elements removed by RemoveAll(EndsWithSaurus).",
dinosaurs.RemoveAll(EndsWithSaurus)); Console.WriteLine("\nList now contains:");
foreach(string dinosaur in dinosaurs)
{
Console.WriteLine(dinosaur);
} Console.WriteLine("\nExists(EndsWithSaurus): {0}",
dinosaurs.Exists(EndsWithSaurus));
} // Search predicate returns true if a string ends in "saurus".
private static bool EndsWithSaurus(String s)
{
if ((s.Length > 5) &&
(s.Substring(s.Length - 6).ToLower() == "saurus"))
{
return true;
}
else
{
return false;
}
}
}/* This code example produces the following output:Compsognathus
Amargasaurus
Oviraptor
Velociraptor
Deinonychus
Dilophosaurus
Gallimimus
TriceratopsTrueForAll(EndsWithSaurus): FalseFind(EndsWithSaurus): AmargasaurusFindLast(EndsWithSaurus): DilophosaurusFindAll(EndsWithSaurus):
Amargasaurus
Dilophosaurus2 elements removed by RemoveAll(EndsWithSaurus).List now contains:
Compsognathus
Oviraptor
Velociraptor
Deinonychus
Gallimimus
TriceratopsExists(EndsWithSaurus): False
*/