比较列表以确定list<>;

本文关键字:lt gt list 列表 比较 | 更新日期: 2024-10-22 16:36:06

我有两个列表需要比较:

var list = new Guess(guesses, 0 , 0);// see class for constructor

theGame.Target = guesses;
var list2 = theGame.Target;

我需要做以下事情:

GuessTheDigits正确设置RightDigitsInTheRightPosition的数量

客人数字:

public ActionResult GuessTheDigits(List<int> guesses)
{
    GuessingGame theGame = this.Session["GameState"] as GuessingGame;
    // pass to the method
    theGame.GuessTheHiddenDigits(guesses);
    //set the lists
    var list = new Guess();
    theGame.Target = guesses;
    var list2 = theGame.Target;
    //need to compare lists here
    // Redirect to action
    return RedirectToAction("Index", theGame.Guesses);
}

分类如下:

猜测类

public class Guess
{
    public Guess()
        : this(new List<int>() { 1, 2, 3 }, 0, 0 )
    {
    }
    public Guess(List<int> guesses, int rdrp, int rdwp)
    {
        this.Digits = guesses;
        this.RightDigitRightPosition = rdrp;
        this.RightDigitWrongPosition = rdwp;
    }
    public Guess(List<int> guesses, int rdrp)
        : this(guesses, rdrp, 0)
    {
    }
    public Guess(List<int> guesses)
       : this(guesses, 0, 0)
    {
    }
    public List<int> Digits { get; set; }
    public int RightDigitRightPosition { get; set; }
    public int RightDigitWrongPosition { get; set; }
}

以前尝试过的代码:

var check = list2.Where(s => !theGame.Guesses.Contains(list));
foreach (var i in check)
{
    list.RightDigitRightPosition = i;
}

比较列表以确定list<>;

假设theGame.GuessesList<Guess>,那么我认为(因为还不完全清楚)您想要的代码是

var samePositions = myGame.Guesses.Where(x => list.Digits.IndexOf(x.RightDigitRightPosition) == x.Digits.IndexOf(x.RightDigitRightPosition)));

这将拉取所有具有RightDigitRightPosition值并且与list处于相同位置的猜测。

您可以使用IndexOf来查找值的位置:

int i = this.Digits.IndexOf(value);

目前还不清楚RightDigitRightPositionRightDigitWrongPosition应该如何设置才能确切地知道如何做到这一点。