Array.FindAll(numbers,delegate(int x)关于这句,请sp1234大哥或那位知道的来看下

fxqyyzg 2007-02-10 07:06:03
sp1234(开发应用控件必须举一返十才能奏效) ( ) 信誉:100 Blog 2006-8-23 12:59:01 得分: 0



在知道了Linq这个东东之后,楼主这个例子恰好可以用来说明什么时候不应该使用Linq。

static void NumQuery()
{
int[] numbers = new int[] { 1, 4, 2, 7, 8, 9 };
int[] evenNumbers = Array.FindAll(numbers,delegate(int x){return (x % 2)== 0;});
Console.WriteLine("Result:");
Array.ForEach(evenNumbers,delegate(int x){Console.WriteLine(x);});
Console.ReadLine();
}


杀鸡用牛刀,仅仅因为偷懒(而不是无法获得)而使用类型推断,都是不智之举。

---------------------------------------
http://community.csdn.net/Expert/topic/4969/4969412.xml?temp=.3985254

今天查LINQ时候发现这个了

没搞懂 int[] evenNumbers = Array.FindAll(numbers,delegate(int x){return (x % 2)== 0;});这句怎么个意思

来个懂的给解解惑呗

二百分送上,外加一句"谢谢":)

...全文
555 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
hcl8260 2007-02-12
  • 打赏
  • 举报
回复
帮顶
shadow841112 2007-02-12
  • 打赏
  • 举报
回复
接分了,新年快乐~
lizhizhe2000 2007-02-11
  • 打赏
  • 举报
回复
只接分!
cat_hsfz 2007-02-11
  • 打赏
  • 举报
回复
int[] evenNumbers = Array.FindAll(numbers,delegate(int x){return (x % 2)== 0;});

int[] - 接收类型为int[],推断返回类型为int[]
evenNumbers - 接收参数名为evenNumbers,推断“返回偶数”
Array.FindAll() - 从参数列表推断,应该是放入一个Array和一个delegate,将执行该delegate后返回true的项作为符合查找条件,加到结果Array中。
numbers - 待查找数组
delegate(int x) - 查找规则的委托
hertcloud 2007-02-11
  • 打赏
  • 举报
回复
int[] evenNumbers = Array.FindAll(numbers,delegate(int x){return (x % 2)== 0;});

这里 Array.FindAll()

第一个参数 传入了 需要的数组numbers 第二个参数 可以传入一个函数 或 函数委托.
实际上 这里的简写了下而已 和下面是一样的

static void NumQuery()
{
int[] numbers = new int[] { 1, 4, 2, 7, 8, 9 };
// int[] evenNumbers = Array.FindAll(numbers, delegate(int x) { return (x % 2) == 0; });
int[] evenNumbers = Array.FindAll(numbers, myFun);
Console.WriteLine("Result:");
Array.ForEach(evenNumbers, delegate(int x) { Console.WriteLine(x); });
Console.ReadLine();
}

private static bool myFun(int x)
{
return (x % 2) == 0;
}
huangdong1900 2007-02-11
  • 打赏
  • 举报
回复
我顶
hertcloud 2007-02-11
  • 打赏
  • 举报
回复
C#
public static T[] FindAll<T> (
T[] array,
Predicate<T> match
)

类型参数
T
数组元素的类型。


参数
array
要搜索的从零开始的一维 Array。

match
Predicate,定义要搜索的元素的条件。



返回值
如果找到一个其中所有元素均与指定谓词定义的条件匹配的 Array,则为该数组;否则为一个空 Array。
xiaoliangwh 2007-02-11
  • 打赏
  • 举报
回复
up

foyuan 2007-02-11
  • 打赏
  • 举报
回复
int[] evenNumbers = Array.FindAll(numbers,delegate(int x){return (x % 2)== 0;});


C#本身就支持这个语法啊 不用Linq的

C#2里面FindAll<>是范型方法 很好解释的
delegate就行当于js里的function
函数也可以做参数 如果返回true就OK
function(int x){return (x%2)==0;}

Linq那东西没有什么新玩意 就是C#3.0的语法而已 用还是起来挺舒服 关键在于你对语言的体会了
xiaotupansy 2007-02-11
  • 打赏
  • 举报
回复
再顶
WWWDJ1983 2007-02-11
  • 打赏
  • 举报
回复

路过
学习
fxqyyzg 2007-02-10
  • 打赏
  • 举报
回复
顺便说一句

分不太多,UP或MARK就不给了
心晴Sunheart 2007-02-10
  • 打赏
  • 举报
回复
学习
fxqyyzg 2007-02-10
  • 打赏
  • 举报
回复
我晕,找着了

http://www.microsoft.com/china/msdn/library/langtool/vcsharp/csharpgenerics.mspx?mfr=true

就当给大家拜年了

可惜我这二百分了

不过还是希望来个人给说说

xiaotupansy 2007-02-10
  • 打赏
  • 举报
回复
up
fxqyyzg 2007-02-10
  • 打赏
  • 举报
回复
委托吗?

怎么委这来了

查过Google和MSDN都没找到答案.

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧