当我刚刚添加此子句&& w[12]==CSRName
时,现在所有传入和传出数据都变为零。代码有什么问题?
void Main()
{
var csvlines = File.ReadAllLines(@"c:\smdr.csv");
var csvLinesData = csvlines.Skip(1).Select(l => l.Split(',').ToArray());
var csrName = "";
var users = csvLinesData.Select(data => new User
{
CSRName = data[12],
Incomming = csvLinesData.Count(w => w[4] == "I"
&& w[8] == "0"
&& w[10] == "0"
&& w[12] == csrName
&& w[1].ToString().Substring(w[1].ToString().Length-8)!="00:00:00"),
outgoing = csvLinesData.Count(w => w[4] == "O"
&& w[8] == "0"
&& w[10] == "0"
&& w[12] == csrName
&& w[1].ToString().Substring(w[1].ToString().Length-8)!="00:00:00"),
})
.Where(u => !u.CSRName.Contains("VM") && u.CSRName != "Voice Mail")
.OrderBy(u => u.CSRName)
.ToList();
users.Dump();
}
class User
{
public string CSRName;
public int outgoing;
public int Incomming;
}
按照指导我编辑代码,现在数据即将传入和传出。这些以下我编辑的行
Incomming = csvLinesData.Count(w => w[4] == "I"
&& w[8] == "0"
&& w[10] == "0" && w[12]==data[12]
&& w[1].ToString().Substring(w[1].ToString().Length-8)!="00:00:00"),
outgoing = csvLinesData.Count(w => w[4] == "O"
&& w[8] == "0"
&& w[10] == "0" && w[12]==data[12]
&& w[1].ToString().Substring(w[1].ToString().Length-8)!="00:00:00"),
答案 0 :(得分:1)
csrName
始终为""
,因为这是您分配给它的内容。如果你的意思是CSRName
(新User
对象的属性),你需要使用data[12]
,因为你无法访问新对象(理论上你可以重写你的逻辑,所以你可以,但可能更容易复制data[12]
值。