【发布时间】:2014-12-23 12:24:28
【问题描述】:
所以我有三个类,例如:
internal class Checkpoint
{
public int Id { get; set; }
public string Coordinates { get; set; }
}
internal class Log
{
public DateTime TimeStamp { get; set; }
public int CheckpointId { get; set; }
}
internal class User
{
public int Id { get; set; }
public string Coordinate { get; set; }
public string Name { get; set; }
}
我想根据注册点计算汽车每天行驶的距离。如果用户只在A点注册,我得到他家的坐标,并计算他家、检查点A和回到他家的距离。 如果他在 A 点和 B 点注册,我将坐标从 Home 带到 A 到 B,然后返回 Home。
所以我的程序如下:
static void Main(string[] args)
{
var listOfUsers = new List<User>(); //get users from db
var listOfCheckpoints = new List<Checkpoint>(); //get checkpoints from db
StringBuilder sb = new StringBuilder();
foreach (var user in listOfUsers)
{
string address = user.Coordinate;
DateTime currentDate = new DateTime(2014, 8, 1);
var dictionary = new Dictionary<string, double>();
while (currentDate <= DateTime.Now)
{
double dayUserDistance = 0.00;
var listOfUserLogs = new List<Log>(); //Get logs where day == currentDate from db
var previousCoordinate = address;
foreach (var log in listOfUserLogs)
{
Checkpoint checkpoint = listOfCheckpoints.FirstOrDefault(x => x.Id == log.CheckpointId);
dayUserDistance += DistanceCalculator.GetDistance(previousCoordinate, checkpoint.Coordinates);
previousCoordinate = checkpoint.Coordinates;
}
dayUserDistance += DistanceCalculator.GetDistance(previousCoordinate, address);
dictionary.Add(currentDate.ToString("yyyy-MM-dd"), dayUserDistance);
currentDate = currentDate.AddDays(1);
}
sb.Append(user.Name + " ; ");
foreach (KeyValuePair<string, double> keyValuePair in dictionary)
{
sb.Append(keyValuePair.Value + ";");
}
sb.AppendLine();
}
Console.WriteLine();
Console.ReadLine();
}
}
但是当我运行它时,我没有在控制台中打印任何内容。控制台是空白的。
你能告诉我我错过了什么吗?我已将数据库连接到控制台应用程序,因为我拥有数据库中所需的所有数据。
【问题讨论】:
-
有隐藏代码吗?此时://从数据库中获取用户??否则你必须添加实际代码来做到这一点
-
也许你应该在控制台上写一些东西。
Console.WriteLine(sb.ToString());怎么样 -
您没有看到任何内容,因为您没有向控制台写入内容。
Console.WriteLine()只是打印一个换行符。也许你想做Console.WriteLine(sb.ToString()) -
好像有很多代码丢失或者从来没有写过。用户列表、检查点列表、日志列表、DistanceCalculator.GetDistance。如果您问为什么我的代码不起作用,请提供与您的问题相关的所有代码
-
这就是我的全部代码。我添加了 Console.WriteLine(sb.ToString()) 我什么也没得到。 @史蒂夫你是什么意思?我不太擅长这个,你能解释一下我应该添加什么吗??
标签: c# sql-server console-application distance