具有For-Each循环的元组

时间:2018-06-20 04:45:29

标签: c# wcf foreach tuples

我不确定我在这里做错了还是真的错了。

这可能完全被忽略了,这就是为什么我将其发送给社区以进行查看的原因。

我正在客户端创建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);
}

Tuples with Foreach

1 个答案:

答案 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