请问关于c的具体应用场景有哪些?

2026-04-29 03:182阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计621个文字,预计阅读时间需要3分钟。

请问关于c的具体应用场景有哪些?

如果我想知道是否有更简洁的方法来处理使用变量跳过的情况,以下是一个简化的开头内容:

通常我会这样做,想知道是否有更简洁的方式来处理变量跳过。我有一个函数返回一个未知长度的列表。我想将结果添加到另一个列表中,同时想知道是否返回了一个空列表。

正如我经常这样做,我想知道是否有一个简洁的方法来跳过使用变量.我有一个函数返回一个未知长度的List.我想将结果添加到另一个列表中,并且还知道我是否返回了一个空列表.我可以将函数结果保存在变量中,看看它是否为空,否则将其添加到列表中.我正在考虑是否可以更优雅地完成这项工作.
我也可以这样做:

myList.AddRange(getFiles(path)); if(getFiles(path).Count == 0) { doSomething(); }

getFiles是一个示例函数,它返回路径中的文件列表

然而,我必须两次调用该函数.

这更像是一个编程风格的问题,因为我很缺乏经验.每当发生这种情况时,是否应该制作“tmp”变量?

制作此扩展方法:

请问关于c的具体应用场景有哪些?

public static int AddRangeEx<T>(this List<T> target, IEnumerable<T> items) { int result = items.Count(); if( result > 0 ) target.AddRange(items); return result; }

然后你就可以编写这样的代码了:

if(myList.AddRangeEx(getfiles(path)) > 0) { doSomething(); }

或者,如果您担心额外的Count()调用的副作用(即使只是性能副作用,但有很多方法可以获得只能运行一次的IEnumerable),您可以通过这种方式构建扩展方法:

public static int AddRangeEx<T>(this List<T> target, IEnumerable<T> items) { int result = 0; foreach (T item in items) { target.Add(item); result++; } return result; }

这与AddRange()和Count()已经在做的事情并没有什么不同.

作为奖励,您可以重载扩展方法,以提高已知计数的类型的性能:

public static int AddRangeEx<T>(this List<T> target, T[] items) { if (items.Length > 0) target.AddRange(items); return items.Length; }

令我感到难过的是,内置的AddRange()方法还没有为我们做到这一点.

本文共计621个文字,预计阅读时间需要3分钟。

请问关于c的具体应用场景有哪些?

如果我想知道是否有更简洁的方法来处理使用变量跳过的情况,以下是一个简化的开头内容:

通常我会这样做,想知道是否有更简洁的方式来处理变量跳过。我有一个函数返回一个未知长度的列表。我想将结果添加到另一个列表中,同时想知道是否返回了一个空列表。

正如我经常这样做,我想知道是否有一个简洁的方法来跳过使用变量.我有一个函数返回一个未知长度的List.我想将结果添加到另一个列表中,并且还知道我是否返回了一个空列表.我可以将函数结果保存在变量中,看看它是否为空,否则将其添加到列表中.我正在考虑是否可以更优雅地完成这项工作.
我也可以这样做:

myList.AddRange(getFiles(path)); if(getFiles(path).Count == 0) { doSomething(); }

getFiles是一个示例函数,它返回路径中的文件列表

然而,我必须两次调用该函数.

这更像是一个编程风格的问题,因为我很缺乏经验.每当发生这种情况时,是否应该制作“tmp”变量?

制作此扩展方法:

请问关于c的具体应用场景有哪些?

public static int AddRangeEx<T>(this List<T> target, IEnumerable<T> items) { int result = items.Count(); if( result > 0 ) target.AddRange(items); return result; }

然后你就可以编写这样的代码了:

if(myList.AddRangeEx(getfiles(path)) > 0) { doSomething(); }

或者,如果您担心额外的Count()调用的副作用(即使只是性能副作用,但有很多方法可以获得只能运行一次的IEnumerable),您可以通过这种方式构建扩展方法:

public static int AddRangeEx<T>(this List<T> target, IEnumerable<T> items) { int result = 0; foreach (T item in items) { target.Add(item); result++; } return result; }

这与AddRange()和Count()已经在做的事情并没有什么不同.

作为奖励,您可以重载扩展方法,以提高已知计数的类型的性能:

public static int AddRangeEx<T>(this List<T> target, T[] items) { if (items.Length > 0) target.AddRange(items); return items.Length; }

令我感到难过的是,内置的AddRange()方法还没有为我们做到这一点.