我有一个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# 代码中,我有一个 source DataTable,想要查询它,将结果存储到另一个DataTable.
我有一个带有stgId, fromdate, todate, colorCode, something1, something2列的数据表。与查询后,where状态我需要删除something1和something2列,得到的结果在其他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 表达式的信息,它们对您非常有用。您可以在此处和此处阅读有关它们的信息”
看代码
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#中运行此代码,则生成的输出是两个随机字符串,每次执行都会更改.但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) 当我执行以下代码时,我总是选择相同的颜色.
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循环中执行了一些数据库插入操作,结果将是一个不同的(随机的)(使用断点逐步执行也将导致随机选择).
是否真的不可能在如此短的时间内供应不同的种子?
我尝试将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本身就是一种类型.
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这么说?
假设我需要这样的东西.(这段代码很错误,但只是一个例子).这段代码不是我的问题!这只是一个例子.我知道如何使用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块来解决逻辑?如果不是,为什么呢?
最近我用备份数据库加载了我的网络应用程序.在备份数据库中,表格没有达到我目前的身份编号.我想从备份数据库身份播种中跳过这些数字.请帮忙,这很紧急!
要么
如果我在中间更改身份种子会怎样?
如何在不使用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()吗?
我有一个对象类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)