小编Sub*_*cob的帖子

如何使用用户定义对象的属性对List <>进行排序?

我有一个List<OrderTime>OrderTime,如下所示

public class OrderTime
    {
        public string OrderId { get; set; }
        public DateTime StarTime { get; set; }
        public DateTime EndTime { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

我想按照升序对此列表进行排序DateTime StarTime.我可以用冒泡排序来做,但想知道是否有任何c#内置方法

c#

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

如何在 C# 中使用从一个 DataTable 到另一个 DataTable 的 where 条件选择列

在我的 C# 代码中,我有一个 source DataTable,想要查询它,将结果存储到另一个DataTable.

我有一个带有stgId, fromdate, todate, colorCode, something1, something2列的数据表。与查询后,where状态我需要删除something1something2列,得到的结果在其他DataTable。

等效的 SQL 查询如下所示

SELECT 
    stgId,
    fromdate,
    todate,
    colorCode 
FROM 
    tblScheduling 
WHERE 
    Mcode='123'
Run Code Online (Sandbox Code Playgroud)

我想在另一个DataTable.

编辑:回答后更新

可以DataRow[]使用像这样的where 条件将结果作为类型获取。

DataRow[] results = table.Select("A = 'foo' AND B = 'bar' AND C = 'baz'");
Run Code Online (Sandbox Code Playgroud)

但是我希望结果集作为新的数据表。
引用已接受的答案
“阅读有关 LINQ 和 lambda 表达式的信息,它们对您非常有用。您可以在此处此处阅读有关它们的信息

c# linq ado.net

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

内部匿名方法中变量的范围

看代码

public class Test
{
    public static void Main()
    {
        Test t = new Test();
        var AnonymousMethod = t.OuterMethod();
        AnonymousMethod("passedValue");
    }
     public delegate void SampleDelegate(string InputText);

     public SampleDelegate OuterMethod()
    {
        string outerValue="outerValue";
        return (x => {
            Console.WriteLine(x);
            Console.WriteLine(outerValue);
        });

    }
}
Run Code Online (Sandbox Code Playgroud)

产量

Success  time: 0.02 memory: 33816 signal:0
passedValue
outerValue
Run Code Online (Sandbox Code Playgroud)

链接到示例

通常,变量的范围outerValue将在调用后结束t.OuterMethod().但是在使用匿名类型的情况下,Console清楚地输出了输出(Console.WriteLine(outerValue)),这意味着变量的范围没有结束.编译器实际上做了什么来确定其范围?它会将Main方法范围分配给匿名方法中使用的变量吗?我知道如何使用,但不知道它是如何工作的.请指导我?

编辑

假设附加到事件的匿名方法.该事件可能会在以后执行很多次.然后变量将在内存中.仪式?如果分配了很多事件,很多内存!我想这是件坏事.我犯了什么错吗?

c# oop closures

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

虽然C#生成随机输出为什么Java为同一段代码生成"Hello World"?

如果我在c#中运行此代码,则生成的输出是两个随机字符串,每次执行都会更改.但Java代码总是打印'Hello World'.

 static void Main(string[] args)
        {
           Console.WriteLine(randomString(-229985452) + " " + randomString(-147909649));
           Console.ReadLine();
        }
        public static String randomString(int i)
        {
            Random ran = new Random(i);
            StringBuilder sb = new StringBuilder();
            for (int n = 0; ; n++)
            {
                int k = ran.Next(27);
                if (k == 0)
                    break;

                sb.Append((char)('`' + k));

            }

            return sb.ToString();
        }
Run Code Online (Sandbox Code Playgroud)

但是Java中的相同代码会打印"Hello World".为什么这些语言行为不同?

Java代码

System.out.println(randomString(-229985452) + " " + randomString(-147909649));
Run Code Online (Sandbox Code Playgroud)

它的方法

public static String randomString(int i)
{
    Random ran = new Random(i);
    StringBuilder sb = new …
Run Code Online (Sandbox Code Playgroud)

c# java

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

为什么Random始终做出相同的选择?

当我执行以下代码时,我总是选择相同的颜色.

static void Main(string[] args)
        {
            string[] Colors = new string[10] { "Red", "Yellow", "Green", "Blue", "Purple", "White", "violet", "orange", "indigo", "blue" };
            for (int i = 0; i < 13; i++)
            {
                Random rnd = new Random();
                int code = rnd.Next(0, 9);
                string Color = Colors[code];
                Console.WriteLine(Color);
            }
            Console.ReadLine();
        }
Run Code Online (Sandbox Code Playgroud)

但如果`Random rnd = new Random();' 在循环外创建,结果是唯一的.如果循环以更快的速率执行,那么输出将是相同的.假设我在for循环中执行了一些数据库插入操作,结果将是一个不同的(随机的)(使用断点逐步执行也将导致随机选择).

是否真的不可能在如此短的时间内供应不同的种子?

c#

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

DateTime转换为无效格式

我尝试将9/29/2013 2:44:28 PM(mm/dd/yyyy)转换为dd/mm/yyyy格式.

转换后我得到了一个奇怪的日期.

我试过了

dateTimeVar.ToString("dd/mm/yyyy");

29/44/2013
Run Code Online (Sandbox Code Playgroud)

日期DateTime本身就是一种类型.

c# datetime

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

这个if条件如何无法访问?

IsSaveNew是类型的bool? CoverLetterId类型int?

if (coverLetter.IsSaveNew ?? true || coverLetter.CoverLetterId == null)
Run Code Online (Sandbox Code Playgroud)

coverLetter.CoverLetterId == null.此声明在visual studio(2012)中标记为无法访问.

但如果IsSaveNew是假的,那么它将达到第二个条件.为什么Visual Studio这么说?

.net c# visual-studio unreachable-code

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

我应该使用Try Catch Block来实现我的业务逻辑吗?

假设我需要这样的东西.(这段代码很错误,但只是一个例子).这段代码不是我的问题!这只是一个例子.我知道如何使用if else语句编写它.我正在考虑一个更复杂的背景!

int[] arraynums = new int[3] {1,2,3};
int Sample = 0;
try
{
Sample = arraynums[3];
}
catch
{
Sample=4;
}
Run Code Online (Sandbox Code Playgroud)

在这里,我可以使用一个不会遇到错误的替代逻辑.但是如果我使用try catch块,我仍然可以减少代码.是否建议使用try catch块来解决逻辑?如果不是,为什么呢?

c# c++ java

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

如何跳过Identity列的编号?

最近我用备份数据库加载了我的网络应用程序.在备份数据库中,表格没有达到我目前的身份编号.我想从备份数据库身份播种中跳过这些数字.请帮忙,这很紧急!

要么

如果我在中间更改身份种子会怎样?

sql sql-server sql-server-2008

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

从表中选择TOP n行,其中n在另一个表中?

如何在不使用Dynamic SqlQuery的情况下实现这一目标?

我有这个查询,

SELECT TOP n FROM mytable WHERE ID = @id
Run Code Online (Sandbox Code Playgroud)

要获得n的值,

SELECT nCOUNT FROM myAnotherTable WHERE ID = @id
Run Code Online (Sandbox Code Playgroud)

我可以使用Row_index()吗?

sql t-sql sql-server-2008

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

获取不会更改其父对象值的对象的副本

我有一个对象类TimeDuration.当我尝试更改从数组Span获取的对象的值时,数组内的值也会更改.如何获取不会更改其父对象值的对象的副本?我需要将此副本传递给另一个函数,我必须对此对象进行更改

 public void test()
        {
            List<TimeDuration> Span = new List<TimeDuration>();
            TimeDuration ob = new TimeDuration();
            ob.FromTime = DateTime.Now;
            ob.ToTime = DateTime.Now.AddDays(1);
            Span.Add(ob);

           //Trying to assign value here!
           TimeDuration ob2= Span[1];
           ob2.FromTime = DateTime.Now.AddDays(3);

        }

public class TimeDuration
    {
        public DateTime FromTime { get; set; }
        public DateTime ToTime { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

c# linq

-1
推荐指数
1
解决办法
283
查看次数