我不确定我在这里做错了还是真的错了。
这可能完全被忽略了,这就是为什么我将其发送给社区以进行查看的原因。
我正在客户端创建List
中的Tuple<T,Boolean>
,然后通过REST JSON返回WCF。
我在服务器端获得了完美的价值。但是,当我尝试在for each
循环中使用它们时,这些项目将显示为NULL
并出现错误。
有趣的是,我将for each
循环替换为经典for
循环,并且代码完美地运行了文件。
下面是我正在使用的代码。另外还附有图片,其中包含有关我在此处放置的场景的详细信息。
//This code fails
foreach (Tuple<Candidate, Boolean> cand in candidateList) //candidateList has got items perfectly in it.
{
Candidate cd = cand.Item1; //cand comes out as NULL
if (cd.IsShortlisted)
InsertShortCandidates(jobPost.JobID.ToString(), cd.UserID, cd.MatchingScore.ToString());
else
RemoveShortCandidates(jobPost.JobID.ToString(), cd.UserID);
}
//This code runs perfectly fine
for (Int32 idx = 0; idx < candidateList.Count; idx++) // As expected candidateList has got items.
{
Tuple<Candidate, Boolean> cand = candidateList[idx]; // Here cand has got values good to be used further.
Candidate cd = cand.Item1;
if (cd.IsShortlisted)
InsertShortCandidates(jobPost.JobID.ToString(), cd.UserID, cd.MatchingScore.ToString());
else
RemoveShortCandidates(jobPost.JobID.ToString(), cd.UserID);
}
答案 0 :(得分:0)
您可以通过这种方式轻松地遍历Tuple,比如说我有一个课程
课程
public class MyClass
{
public int Counter { get; set; }
}
元组列表
List<Tuple<MyClass, bool>> listoftuple = new List<Tuple<MyClass, bool>>();
设置元组列表
for (int i = 0; i <=10; i++)
{
MyClass cls = new MyClass();
cls.Counter = i;
Tuple<MyClass, bool> tuple =
new Tuple<MyClass, bool>(cls, true);
listoftuple.Add(tuple);
}
获取元组值
foreach (Tuple<MyClass, bool> item in listoftuple)
{
Tuple<MyClass, bool> gettuple = item;
Console.WriteLine(gettuple.Item1.Counter);
Console.WriteLine(gettuple.Item2);
}
您的代码问题
您的代码中的问题是foreach循环的第一行
候选cd = cand.Item1;
尝试替换为
Tuple<Candidate, Boolean> cd = cand
然后
Candidate candidate = cd.Item1