小编Max*_*mus的帖子

具有多个类的通用

我正在尝试创建这种通用方法来简化操作,但我想我搞砸了!你能解决我的问题吗?

这编译:

private string ConcatenateText<T1, T2>(MyEntity myEntity) 
    where T1 : Supplier, new()
    where T1 : Employee, new()
    where T2 : SupplierDepartment, new()
    where T2 : EmployeeDepartment, new()
{
    T1 p = new T1();
    T2 r = new T2();
    //Code here for myEntity treatment
    return mystring;
}
Run Code Online (Sandbox Code Playgroud)

虽然这不编译:

protected void mybutton1_Click(object sender, EventArgs e)
{
   string mystring = ConcatenaText<Supplier, SupplierDepartment>(myEntity);
}

//This does not compile
protected void mybutton2_Click(object sender, EventArgs e)
{
   string mystring = ConcatenaText<Employee, EmployeeDepartment>(myEntity);
}
Run Code Online (Sandbox Code Playgroud)

消息:类型Supplier不能用作泛型类型或方法ConcatenateText(MyEntity myEntity)中的类型参数T1.从供应商到员工没有隐式参考转换

可以这样做吗?我究竟做错了什么?可以改进吗? …

c# generics parameters types

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

如何以DateTime格式添加文字字符串?

是否可以在日期和时间格式之间添加"at"一词?我尝试添加它就像这样"dddd,d MMM,yyyy at HH:mm"但webapp正在根据区域配置CA或AU将其转换为"aA"或"aP"

Console.WriteLine(DateTime.Now.ToString("dddd, d MMM, yyyy at HH:mm"));
Run Code Online (Sandbox Code Playgroud)

我忘了说.我必须是一个格式字符串,没有复杂或连接函数.

c# format culture datetime

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

将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万
查看次数

如何将null设置为GUID属性

我有一个Employee类型的对象,它有一个Guid属性.我知道如果我想设置为null我必须将我的type属性定义为可空的Nullable<Guid>prop或Guid?支柱.

但在我的情况下,我无法改变道具的类型,所以它将保持为Guid类型和我的同事,我们不想使用Guid.Empty.

有没有办法将我的属性设置为null或string.empty,以便将数据库中的字段重新设置为null.

我有一个从string.empty转换为null的机制,但如果将更改为接受空guid为null,我将更改许多内容.

请帮忙!

c# guid nullable

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

从没有时区的日期获取ISO字符串

我的配置是里斯本时区.当我这样做时,new Date()我得到当前的当地日期/时间Fri Apr 28 2017 01:10:55 GMT+0100 (GMT Daylight Time)

当我获得ISO字符串时toISOString(),它将应用时区,我会得到:

2017-04-28T00:10:55.964Z
Run Code Online (Sandbox Code Playgroud)

问题是几分钟前的日期时间是这样的(昨天):

2017-04-27T23:45:05.654Z
Run Code Online (Sandbox Code Playgroud)

我尝试了moment.js(对此我不熟悉),我做了类似的事情

document.write(moment('2017-04-28').format())
Run Code Online (Sandbox Code Playgroud)

但我得到的2017-04-28T00:00:00+01:00不是这个2017-04-28T00:00:00.000Z

我想将此值作为restful方法的参数传递,以自动将其解析为DateTime类型,但如果我从moment.js格式传递输出,那么它将被解析为 2017-04-27 23:00:00.00

如果我new Date()new Date('2017-04-27')(或日期部分)创建一个新的日期,我只想得到如下的ISO格式,没有时间没有时区

2017-04-28T00:00:00.000Z
Run Code Online (Sandbox Code Playgroud)

是否有类似toISOString()的javascript方法或使用可能的时刻来获取该格式?

无论什么时区或时刻,我只是模拟那是给定日期的午夜.

javascript rest datetime date momentjs

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

在javascript中获取没有时间的日期ISO字符串

有没有办法在没有用日期部分重建新日期或格式化它的情况下在 javascript 中获取新日期类型的 ISO 字符串和午夜时间?

我一直在尝试这个

var date = new Date();
date.setHours(0, 0, 0, 0);
document.write(date.toISOString());
Run Code Online (Sandbox Code Playgroud)

我得到了这个

2017-04-20T04:00:00.000Z
Run Code Online (Sandbox Code Playgroud)

我想得到这个

2017-04-20T00:00:00.000Z
Run Code Online (Sandbox Code Playgroud)

是否有我一直在尝试的内置函数或方法来获得所需的输出(使用日期部分重建日期对象)?

javascript time date isodate

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

分组相同类型的集合C#

我有一组不同的对象,我想知道我是否可以创建分组相同类型对象的集合.我不知道是否有一个方法与linq或类似的东西.

List<Object> list = new List<Object>();
Object1 obj1 =  new Object1();
Object2 obj2 =  new Object2();
Object1 obj3 =  new Object1();
Object3 obj4 =  new Object3();
Object3 obj5 =  new Object3();

list.Add(obj1);
list.Add(obj2);
list.Add(obj3);
list.Add(obj4);
list.Add(obj5);
Run Code Online (Sandbox Code Playgroud)

我想要相同类型的新列表:

List<Object1> newList1 = method.GetAllObjectsFromListObject1 // Count = 2
List<Object2> newList2 = //GetAllObjectsFromListObject2 // Count = 1
List<Object3> newList3 = //GetAllObjectsFromListObject3 // Count = 2 
Run Code Online (Sandbox Code Playgroud)

.net c# linq select list

8
推荐指数
2
解决办法
3976
查看次数

解释令人困惑的条件字符串格式

一位前同事写道:

String.Format("{0:#;;} {1:records;no records;record}", rows, rows - 1);
//Rows is a integer value
Run Code Online (Sandbox Code Playgroud)

我读过这些文章

代码项目 - .NET MSDN中的自定义字符串格式
- 自定义数字格式字符串

但我仍然不知道这种格式是如何工作的.显然我可以看到输出,但我不明白这部分{0:#;;}和第二部分.我想做同样的事情来指定年龄(年,年......)

我对这种字符串格式很好奇.有人可以解释这种行为吗?作者不再与我们合作了.

c# formatting string.format

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

具有单引号冲突的DataTable select方法C#

我最近发现当我在包含撇号的字段下进行LINQ选择时,它会使我的应用程序抛出异常.

DataRow[] newDr = this.ds.Tables["TableName"].Select("Name = '" + drData["Name"].ToString() + "'");
Run Code Online (Sandbox Code Playgroud)

如果drData ["姓名"] ="商家的钱"

I got an exception of "Syntax error: Missing operand after 'S' operator "

任何人都可以告诉我如何保存它,不要更换或删除它,好吗?

c# linq select datarow apostrophe

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

数据类型 date 和 datetime 在 add 运算符中不兼容

我最近在 SQL Server 2008 开发环境中创建了一个像这样连接日期和时间的函数

select cast('2016-11-09 15:35:00' AS DATE) + CAST('00:00:00' AS DATETIME)
Run Code Online (Sandbox Code Playgroud)

在 SQL Server 2008 中它运行良好,但在 SQL Server 2016 中部署它会引发错误

数据类型 date 和 datetime 在 add 运算符中不兼容。

但只有在单独放置查询时它才能很好地工作

select cast('2016-11-09 15:35:00' AS DATE)
select CAST('00:00:00' AS DATETIME)
Run Code Online (Sandbox Code Playgroud)

那么,我该如何解决这个问题。我发现有人说与TIME数据类型不兼容的文章,但我没有使用它。其实我的拼接是这样的

 WHERE 
     CREATIONDATE BETWEEN CAST(@CurrentDate AS DATE) + CAST('00:00:00' AS DATETIME) AND CAST(@CurrentDate AS DATE) + CAST('23:59:59' AS DATETIME)
Run Code Online (Sandbox Code Playgroud)

where@CurrentDate是一个DateTime变量并作为'2016-11-09 15:35:00'传递给我的函数

我无法修改 SQL Server 2016 框的配置。我该如何修复我的代码?

谢谢

sql-server datetime types sqldatatypes sql-server-2016

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