小编cad*_*ll0的帖子

将DataTable转换为字典C#

我想知道如何将DataTable转换为Dictionary.我做了这样的事.

using System.Linq;

internal Dictionary<string,object> GetDict(DataTable dt)
{
    return dt.AsEnumerable()
      .ToDictionary<string, object>(row => row.Field<string>(0),
                                row => row.Field<object>(1));
}
Run Code Online (Sandbox Code Playgroud)

但我得到:

System.Data.EnumerableRowCollection不包含'ToDictionary'的定义和最佳扩展方法重载'System.Linq.Parallel.Enumerable.ToDictionary(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IEqualityComrparer)'有一些无效的争论

我该如何解决这个问题?

谢谢

c# linq datatable dictionary enumerable

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

TSQL DateDiff返回2位小数的天数

我需要比较2个日期并返回两个小数位之间的天数.

例如:

比较时

SubmittedDate = 2012-02-29 07:02:55.000

FirstCall = 2012-02-29 12:12:19.000
Run Code Online (Sandbox Code Playgroud)

这是一个5小时的差异.所以我会回来0.2天

我试过了:

CAST(DATEDIFF(Hour, SubmittedDate, FirstCall)/30.0 AS DECIMAL(5,2)) As HoursBeforeFirstCall
CAST(DATEDIFF(Day, SubmittedDate, FirstCall) AS DECIMAL(5,2)) As HoursBeforeFirstCall
Run Code Online (Sandbox Code Playgroud)

似乎没有工作.

sql sql-server sql-server-2008

28
推荐指数
2
解决办法
5万
查看次数

如何从数据库中获取可为空的DateTime

我的SQL Server数据库包含可为空的DateTime值.如何在C#中的应用程序中将它们转换为可以为空的DateTime对象?

这是我认为它会是什么样子,但它没有:

DateTime? dt = (DateTime?) sqldatareader[0];
Run Code Online (Sandbox Code Playgroud)

c# sql-server datetime nullable sqldatareader

17
推荐指数
2
解决办法
2万
查看次数

具有通用参数和抽象类的泛型

我有两个通用的基类.第二个泛型类对其第一个类的参数有约束.

abstract class FirstClass<T> {...}

abstract class SecondClass<U> where U : FirstClass {...}
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为没有定义FirstClass.所以我需要这样做.

abstract class FirstClass<T> {...}

abstract class SecondClass<U, T> where U : FirstClass<T> {...}
Run Code Online (Sandbox Code Playgroud)

哪个有效.但是,这使得实现这些抽象类很难看.

class SomeClass {...}

class MyFirstClass : FirstClass<SomeClass> {...}

class MySecondClass : SecondClass<MyFirstClass, SomeClass> {...}
Run Code Online (Sandbox Code Playgroud)

这对我来说似乎是多余的,因为我正在指定SomeClass两次.有没有办法以这样的方式声明它,即FirstClass中的T自动为SecondClass的U. 我真正想要的是这样.

class SomeClass {...}

class MyFirstClass : FirstClass<SomeClass> {...}

class MySecondClass : SecondClass<MyFirstClass> {...}
Run Code Online (Sandbox Code Playgroud)

虽然我怀疑这种确切的情况是可能的,但是有什么更清洁的我该做什么呢?

编辑

有几个人建议制作一个IFirstClass接口.但我的定义更接近于此.

class FirstClass<T>
{
    public T MyObj { get; set; }
}

class SecondClass<U, T> where U : FirstClass<T>
{
    U …
Run Code Online (Sandbox Code Playgroud)

c# generics silverlight

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

保存更高分辨率的图表而不会弄乱外观

你们都必须原谅我的无知,因为我最近才开始使用C#.我只是对Windows图表控件有疑问,因为我遇到了一个相当愚蠢的问题.

我有一个程序,其中包含一些报告,包括漂亮的窗口图表来表示一些数据.但是,我一直在将这些图表保存到文件以及各种用途,只需使用以下内容:

chart2.SaveImage(savefilename,ChartImageFormat.Png);

我的第一个问题在于,我不知道如何在保存前不先增加图表控件的大小而将其保存为更高的分辨率.拥有合理质量的图像会很不错.

第二个问题是当我确实增加图表控件的大小时,可用的操作似乎只能增加实际图表的大小,而不是标签或文本.如果我可以手动更改所有这些,这不会是一个问题,这就是我对条形图所做的,但有一行我无法弄清楚如何制作更厚的:饼图上的标签线.我在下图中画了一个箭头:

http://www.bolinger.ca/chart.png

因此,当图表增加到合理的分辨率时,由于没有增加到适当的相对大小,该线几乎不可见.我觉得应该有办法改变它,但无法弄清楚它会是什么.

再次,原谅我的无知.如果这两个问题中的任何一个都可以解决,那么我可以轻松地知道这些饼图看起来不错.谢谢!

c# charts controls resize resolution

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

NuGet无法使用XmlnsDefinitionAttribute从程序集中提取元数据

我试图将XmlnsDefinitionAttributes添加到我的程序集.我使用TeamCity来管理我的项目.我的构建配置中有一个NuGet Package Pack步骤.

以下是失败的构建日志的相关部分.

[16:42:08]: Starting: C:\Windows\system32\cmd.exe /c C:\BuildAgent\tools\NuGet.CommandLine.1.5.20905.5.nupkg\tools\NuGet.exe pack C:\BuildAgent\work\5f0e65f22ca1527\MyProject\MyProject.csproj -OutputDirectory \\server\Packages -BasePath C:\BuildAgent\work\5f0e65f22ca1527 -Verbose -Version 1.0.97.1034 -Symbols -Properties Configuration=Release
[16:42:08]: in directory: C:\BuildAgent\work\5f0e65f22ca1527
[16:42:08]: Attempting to build package from 'MyProject.csproj'.
[16:42:09]: Packing files from 'C:\BuildAgent\work\5f0e65f22ca1527\MyProject\Bin\Release'.
[16:42:09]: WARNING: Unable to extract metadata from 'MyProject.dll'.
[16:42:09]: Using 'MyProject.nuspec' for metadata.
[16:42:09]: The replacement token 'title' has no value.
[16:42:09]: Process exited with code 1
Run Code Online (Sandbox Code Playgroud)

成功构建的相同部分如下所示.

[16:42:54]: Starting: C:\Windows\system32\cmd.exe /c C:\BuildAgent\tool\NuGet.CommandLine.1.5.20905.5.nupkg\tools\NuGet.exe pack C:\BuildAgent\work\5f0e65f22ca1527\MyProject\MyProject.csproj -OutputDirectory \\server\Packages -BasePath C:\BuildAgent\work\5f0e65f22ca1527 -Verbose -Version 1.0.98.1035 -Symbols …
Run Code Online (Sandbox Code Playgroud)

silverlight xml-namespaces silverlight-4.0 nuget

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

我们如何检查一个数组是否包含#中另一个数组的一个或多个元素?

我有一个字符串数组:例如:

string [] names ={"P","A","B","G","F","K","R"}
Run Code Online (Sandbox Code Playgroud)

我有另一个数组:

string [] subnames={"P","G","O"}
Run Code Online (Sandbox Code Playgroud)

我们如何检查names数组是否包含子数组数组的任何元素.

在上面的例子中,名字中​​有"P"和"G".

.net c#

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

WCF和客户端应用程序中的模糊引用

我设法重现了测试项目中的一个错误,其结构与我的生产代码类似.它由三个简单的项目组成:

通用(类库):

namespace Common
{
    public enum PrimaryColor
    {
        Red,
        Green,
        Blue
    };
}
Run Code Online (Sandbox Code Playgroud)

库(WCF服务库),它引用了Common:

using Common;

namespace Library
{
    [ServiceContract]
    public interface ILibrary
    {
        [OperationContract]
        PrimaryColor GetColor();
    }

    public class Library : ILibrary
    {
        public PrimaryColor GetColor()
        {
            return PrimaryColor.Red;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

ClientApp(控制台应用程序),其中包含对Common的引用,以及对Library的服务引用,称为"LibraryServiceReference":

using Common;
using ClientApp.LibraryServiceReference;

namespace ClientApp
{
    class Program
    {
        static void Main(string[] args)
        {
            LibraryClient client = new LibraryClient("WSHttpBinding_ILibrary");
            PrimaryColor color = client.GetColor();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

ClientApp和Library中的app.config文件是自动生成的,我没有修改它们,我没有更改ClientApp中LibraryServiceReference的默认配置.

编译此解决方案时,我在ClientApp项目中收到以下错误:

错误1

'PrimaryColor' is an ambiguous reference …
Run Code Online (Sandbox Code Playgroud)

wcf ambiguous

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

序列化时如何忽略导航属性

我将 ASP.NET Web API 与实体框架一起使用。我将我的默认序列化器更改为 JSON.NET(因为默认的 DataContractSerializer 根本不适用于 EF)。现在好多了(至少它在工作),但仍然不完美。发送 GET 请求后,我从一张表中获取所有属性以及来自导航属性的大量数据(因此基本上所有来自与我想获取的实体相关的其他实体的数据...)。我怎样才能让它只序列化来自这个实体的字段而不是导航属性?

感谢帮助

entity-framework json.net asp.net-web-api

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

将xml反序列化为类,遇到列表<>的问题

我有以下XML

<map version="1.0">
    <properties>
        <property name="color" value="blue" />
        <property name="size" value="huge" />
        <property name="texture" value="rugged" />
    </properties>
</map>
Run Code Online (Sandbox Code Playgroud)

我正在尝试编写可以将其反序列化的类,这就是我所拥有的:

[XmlRoot("map")]
public class MyMap
{
    [XmlAttribute("version")]
    public decimal Version { get; set; }
    [XmlElement("properties")]
    public List<MyProperty> Properties { get; set; }
}

public class MyProperty
{
    [XmlAttribute("name")]
    public string Name { get; set; }
    [XmlAttribute("value")]
    public string Value { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

问题是我似乎无法读取属性列表,我只得到一个条目,它在Name和Value中都为null.

我需要设置一些神奇的属性来使其工作吗?

.net c# xml xmlserializer deserialization

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