我正在尝试使用LINQ为图形准备数据.
我无法解决的问题是如何计算"与以前的差异.
我期望的结果是
ID = 1,Date = Now,DiffToPrev = 0;
ID = 1,日期=现在+ 1,DiffToPrev = 3;
ID = 1,日期=现在+ 2,DiffToPrev = 7;
ID = 1,日期=现在+ 3,DiffToPrev = -6;
等等...
你能帮我创建这样的查询吗?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
public class MyObject
{
public int ID { get; set; }
public DateTime Date { get; set; }
public int Value { get; set; }
}
class Program
{
static void Main()
{
var list = new List<MyObject>
{ …Run Code Online (Sandbox Code Playgroud) 目前,这只是我很好奇的事情,我没有任何我正在研究的代码,但我想知道如何实现这一目标......
让我们举例来说,我有一个应用程序可以追踪世界上所有足球队的成绩.我希望能够确定任何特定球队最长的"胜利"连胜纪录.
我想我很可能会有这样的数据表:
所以我想要做的就是找到最长的连胜位置TeamA = "My Team",显然这意味着TeamAGoals必须大于TeamBGoals.
正如我所说,这只是一个例子.对于这样的事情,对于不同的DB设计可能更好.但根本问题是如何计算匹配结果的最长条纹/运行.
我从类似的帖子中知道,无限的while循环因导致Unity3d崩溃而臭名昭著。我想隐含地在我正在处理的东西中进行一会儿循环,我相当确定这不是“无限”,但会导致游戏崩溃。
逻辑的想法是检查整数列表中的连续数字,并以此为基础应用加分。该列表包含“有效射击”,并且每次射击时都会添加一个新的int-有效射击越连续,奖金就越高。
这是我所拥有的:
int count = 0;
int firstItem = 0;
int multiples = 3;
int currentMultiple = 0;
int bonusX = 0;
foreach (int i in effectiveShots)
{
if (count == 0)
{
firstItem = i;
count = 1;
}
else if (i == firstItem + count)
{
count++;
}
}
while (count >= multiples)
{
currentMultiple = multiples;
if (count == currentMultiple + multiples)
{
bonusX += 1;
}
if (bonusX > 10 || gameOver)
break;
UnityEngine.Debug.Log(bonusX);
} …Run Code Online (Sandbox Code Playgroud)