通常在我处理LINQ序列时,我想将每个项目发送到返回void的方法,避免使用foreach循环.但是,我还没有找到一种优雅的方法来做到这一点.今天,我写了以下代码:
private StreamWriter _sw;
private void streamToFile(List<ErrorEntry> errors)
{
if (_sw == null)
{
_sw = new StreamWriter(Path.Combine
(Path.GetDirectoryName(_targetDatabasePath), "errors.txt"));
}
Func<ErrorEntry, bool> writeSelector =
(e) => { _sw.WriteLine(getTabDelimititedLine(e)); return true; };
errors.Select(writeSelector);
_sw.Flush();
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我编写了一个只返回true的lambda函数,我意识到Select方法将返回一个布尔序列 - 我将忽略该序列.然而,这看起来有点讽刺和下沉.有没有优雅的方法来做到这一点?或者我只是误用了LINQ?
谢谢.
来自在线API:
HTTP PUT到/ api/device_tokens /在我们的端部注册设备令牌.这让我们知道设备令牌是活动的,并且应该在每次打开应用程序时发生,以确保设备令牌列表保持最新.
我如何首先获取设备令牌?
我正在使用VS2010作为TFS实例的客户端.我创建了一个工作区,需要将TFS目录映射到本地目录 - 让我们调用本地目录" D:\ aaa\bbb\ccc\ddd ".当我导航到"管理工作区"并单击"编辑"将本地目录更改为此路径时,出现以下错误:1
当我尝试映射时出现此错误:" D:\ aaa "," D:\ aaa\bbb "," D:\ aaa\bbb\ccc ".
现在,如果我创建一个名为" D:\ aaa\bbb\ccc1\ddd " 的文件夹,映射有效,我没有收到此错误.
有人可以帮忙吗?我已经把头发拉了一天左右.
谢谢.
[EDIT01:我尝试映射D:\驱动器下的所有其他文件夹,只有一个其他文件夹无法映射.我收到与" D:\ aaa\bbb\ccc\ddd "] 相同的错误
我想使用LINQ将C#中的序列拆分为一系列序列.我做了一些调查,我发现的最接近的SO文章与此略有关系.
但是,这个问题只询问如何根据常量值对原始序列进行分区.我想根据操作对我的序列进行分区.
具体来说,我有一个包含十进制属性的对象列表.
public class ExampleClass
{
public decimal TheValue { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
假设我有一个序列ExampleClass,并且相应的值序列TheValue是:
{0,1,2,3,1,1,4,6,7,0,1,0,2,3,5,7,6,5,4,3,2,1}
Run Code Online (Sandbox Code Playgroud)
我想将原始序列划分为IEnumerable<IEnumerable<ExampleClass>>具有TheValue类似值的值:
{{0,1,2,3}, {1,1,4,6,7}, {0,1}, {0,2,3,5,7}, {6,5,4,3,2,1}}
Run Code Online (Sandbox Code Playgroud)
我只是迷失了如何实现这一点.那么,你能帮忙吗?
我现在有一个非常难看的解决方案,但有一种"感觉",LINQ将增加我的代码的优雅.