小编Gul*_*llu的帖子

如何使用Colllection.ToDictionary()将Dictionary <dynamic,dynamic>转换为Dictionary <string,string>

我正在使用Dapper将2列结果集提取到字典中.我注意到当我将鼠标悬停在结果集上时,intellisense向我显示了一个.ToDictionary(),但由于dapper使用动态属性/ expandoObject,我无法使其工作

Dictionary<string, string > rowsFromTableDict = new Dictionary<string, string>();
using (var connection = new SqlConnection(ConnectionString))
{
   connection.Open();
   var results =  connection.Query
                  ("SELECT col1 AS StudentID, col2 AS Studentname 
                    FROM Student order by StudentID");
    if (results != null)
    {
    //how to eliminate below foreach using results.ToDictionary()
    //Note that this is results<dynamic, dynamic>
         foreach (var row in results)
         {
              rowsFromTableDict.Add(row.StudentID, row.StudentName);
         }
         return rowsFromTableDict;
     }
}
Run Code Online (Sandbox Code Playgroud)

谢谢

c# expando expandoobject c#-4.0 dapper

8
推荐指数
1
解决办法
3836
查看次数

如何在没有抛出异常的情况下取消等待超时的任务

使用取消令牌取消具有超时(在超时结束之前)的任务时,将引发异常.例:

mytask.start();
bool didTaskRunInTime = mytask.wait(5 mins, _cancelToken);
Run Code Online (Sandbox Code Playgroud)

这意味着我不能继续下面.

//was the task cancelled
if (_cancelToken.IsCancelRequested)
{
    // log cancel from user to file etc
}

if (didTaskRunInTime )
{
    int taskResult = myTask.Result;
    // log result to file
}
else if (!_cancelToken.IsCancelRequested)
{
    // Tell user task timed out , log a message etc
}
Run Code Online (Sandbox Code Playgroud)

我将不得不在我的catch块中完成所有这些操作并且我的代码看起来很混乱.这样做的正确方法是什么?

c# multithreading pfx task-parallel-library c#-4.0

7
推荐指数
1
解决办法
1万
查看次数

如何访问阻塞集合的基础默认并发队列

我有多个生产者和一个消费者.但是,如果队列中存在尚未消耗的内容,则生产者不应再次对其进行排队.(唯一没有重复的阻塞集合使用默认的并发队列)

if (!myBlockingColl.Contains(item))
    myBlockingColl.Add(item)
Run Code Online (Sandbox Code Playgroud)

但是,阻塞coll没有contains方法,也没有提供任何类型的trypeek()方法.我如何访问底层并发队列,以便我可以做类似的事情

if (!myBlockingColl.myConcurQ.trypeek(item)
  myBlockingColl.Add(item)
Run Code Online (Sandbox Code Playgroud)

尾巴旋转.请帮忙.谢谢

c# multithreading .net-4.0 task-parallel-library

6
推荐指数
3
解决办法
2995
查看次数

什么是log4net模式来获得Trace.indent和trace.unindent的等价物

我需要缩进和unindent处理,如本机跟踪类.有关如何使用log4net文件和控制台appender的任何想法?谢谢

c# vb.net log4net log4j c#-4.0

6
推荐指数
1
解决办法
1022
查看次数

log4net模式为没有完整路径的文件名提供了什么

我的log4net转换模式如下所示

<conversionPattern value="%5level [%thread] (%file:%line) - %message%newline" />
Run Code Online (Sandbox Code Playgroud)

%文件在我的控制台窗口中吐出几乎覆盖整行的完整路径.

我怎样才能得到文件名(减去路径).

现在它看起来像这样

INFO [10] <c:\My Root Dir\Subdir\...........................\filename.cs> - My message
Run Code Online (Sandbox Code Playgroud)

我希望它看起来像

INFO [10] <filename.cs> - My message
Run Code Online (Sandbox Code Playgroud)

谢谢

c# log4net log4j log4cxx log4net-configuration

5
推荐指数
1
解决办法
1520
查看次数

如何应用Postsharp方面解决方案(命名空间中的所有类)

我正在尝试修改Postsharp附带的示例跟踪应用程序,以便将跟踪应用于我的命名空间中的所有类,而无需将[QuickTrace]显式放在每个类的顶部.我附上了截图.我究竟做错了什么 ?右键单击打开/查看图像以获得更大的图片.谢谢

在此输入图像描述

aop postsharp

5
推荐指数
1
解决办法
2101
查看次数

打字稿未定义变量基本原理

最近从 C# 迁移到 TypeScript。下面的代码工作正常并且没有错误。然而我怀疑我还没有理解一些 TS 基础知识,因为我们只是定义接口并像对象/类一样使用它们。声明接口中定义的类型的变量,然后将该变量分配给其自己的类型对象的正确方法是什么。

let tempCompany = Company|undefined; 
// I get error if I remove undefined in above line.
// Company is an interface with many properties
tempCompany = this.someArrayOfCompanies.find(x => x.zipCode === 65432);
if (tempCompany !== undefined) { 
    // error if I do not do this if check in above line
    console.log(tempCompany.SalesFigure);
}
Run Code Online (Sandbox Code Playgroud)

更新:根据下面的反馈可能的答案。对于像我这样从 .Net/C# 转向 TS 的新手来说,会产生困惑,因为在 C# 中,我们将接口命名为 IAnimal(),然后有一个名为 Dog 的类实现 IAnimal()。在 TS 中,我们有 Animal 接口(没有 I),它的命名是为了让 TS 智能感知能够在 VS Code 中工作。另外,当你的 api 进入 Angular …

javascript typescript tslint

5
推荐指数
1
解决办法
6192
查看次数

# T-SQL sql server 2008 2005 中的 ifdef 类型条件编译

为了向后兼容,我需要在 sql server 2005 和 sql server 2008 上运行一个存储过程。但是,由于 sql server 2008 中不推荐使用某些命令,我​​的脚本在 2005 年编译,但在 2008 年失败。我正在寻找 c++ ,c# 相当于 #define、#ifdef,这样我就可以在 2005 年和 2008 年编译相同的脚本。这方面的标准做法是什么?附上截图,详细解释。谢谢

在此输入图像描述

t-sql sql-server sql-server-2005 sql-server-2008

4
推荐指数
1
解决办法
2948
查看次数

在c#中使用Rx Reactive扩展的linqpad错误

我究竟做错了什么 ?我刚下载了最新的Rx sdk,已安装.使用vs 2010,.net 4具有所有最新的sp/updates等.下载/安装了linqpad,添加了对被动dll的引用,如附带的屏幕截图所示.添加了一行,如linqpad演示中所示,但在运行时出错.请指教.右键单击图像并查看图像以获得清晰视图.

谢谢

在此输入图像描述

c# linq linqpad system.reactive

3
推荐指数
1
解决办法
2356
查看次数

angular 2 材质输入默认焦点移除

我有一个带有一个文本输入的对话框,一些单选按钮和确定取消。当对话框打开时,光标在文本输入内闪烁,这意味着占位符文本已缩小且难以阅读。占位符文本类似于“在此框中描述问题的详细信息”。如何删除 angular 2 中的默认自动对焦?作为一个黑客,即使我能以某种方式使占位符不缩小,我也很好。请指教。使用角度材料控制。

javascript typescript angular-material angular

3
推荐指数
2
解决办法
3682
查看次数

Angular 2如何在表单控件上设置初始错误状态

当我的 html 在 Angular 2 中渲染时,如果所有表单控件出错,如何将它们设置为错误状态?为了澄清这一点,示例代码中只有一个下拉菜单。当表单加载时,它是非红色/没有必需的消息。如果我打开下拉菜单,然后单击外部某处而不进行任何选择,那么红色魔法就会发生,我会看到错误消息。当表单第一次呈现时,我需要它处于错误状态/红色并带有错误消息。我想我需要在某个地方设置该控件的错误状态。只是不知道在哪里以及如何。请指教。代码如下 https://stackblitz.com/edit/angular-error-initial

angular angular-reactive-forms angular-forms

3
推荐指数
1
解决办法
1148
查看次数

如何创建一个扩展方法来处理带有谓词输入的bindinglist.removeall

myGenericList.RemoveAll(x => (x.StudentName == "bad student"));
Run Code Online (Sandbox Code Playgroud)

效果很好,但绑定列表没有这种方法.如何为绑定列表创建一个扩展方法,该方法将谓词作为输入,并像List的canned removeall一样进行魔术

谢谢

c# generics lambda extension-methods predicate

2
推荐指数
1
解决办法
1889
查看次数

WebStorm未知的HTML标签Angular 2

刚刚下载了最新的WebStorm试用版,试用现有的Angular 2 CLI v6.2.4.

我打开了我的根项目文件夹的文件.我在IDE资源管理器中看到了所有文件.但无法导航代码(Ctrl + F1)表示未知的HTML标记.

为Angular 2配置WebStorm的步骤是什么?我用谷歌搜索,也去了Settings -> Languages & Frameworks -> JS -> Libraries -> Add那里,没有在那里列出.

对于"创建新项目",我确实看到了Angular,但这是在WebStorm之外创建的现有CLI项目.

请告知如何设置.

jetbrains-ide webstorm angular

0
推荐指数
1
解决办法
1062
查看次数