【发布时间】:2020-01-14 01:45:10
【问题描述】:
所以我将这个列表从数据库中获取到 DataLayer.cs:
public List<Character> ChooseChar(int userid)
{
List<Character> CharacterList = new List<Character>();
var showCharacter = from c in dbConnection.Character
where c.UserID == userid
select c;
foreach(var a in showCharacter)
{
CharacterList.Add(a);
}
return CharacterList;
}
我在 BusinessLayer.cs 中有这个:
public int userid { get; }
public List<Character> ChooseChar(int userid)
{
return DataLayer.Instance.ChooseChar();
}
我在 Program.cs 中有这个:
Console.WriteLine("This is the last of characters that are owned by you: ");
List<Character> chars = BusinessLayer.Instance.ChooseChar();
foreach(var character in JoinLists)
{
if (character._number == chars.userid)
Console.WriteLine(character._type);
}
foreach (Character c in chars)
{
Console.WriteLine(c.Health);
}
我遇到错误:if (character._number == chars.userid)
错误:不包含定义,并且找不到接受第一个类型参数的可访问扩展方法(您是否缺少 using 指令或程序集引用?)
我正在尝试获取 chars.userid 具有的字符并将其与以下索引匹配:
List<Game> JoinLists = new List<Game>();
JoinLists.Add(new Game(1, "Elf", 6));
JoinLists.Add(new Game(2, "Angel", 10));
JoinLists.Add(new Game(3, "Demon", 10));
JoinLists.Add(new Game(4, "Wizard", 9));
JoinLists.Add(new Game(5, "Undead", 7));
JoinLists.Add(new Game(6, "Vampire", 9));
JoinLists.Add(new Game(7, "Troll", 6));
public int _number { get; }
public string _type { get; }
public int _strength;
public Game(int charNumber, string charType, int strength)
{
this._number = charNumber;
this._type = charType;
this._strength = strength;
}
public override string ToString()
{
return $"{_type} {_strength}";
}
有什么想法吗?
【问题讨论】:
-
这与 MySQL 和 SSMS 有什么关系? SSMS是SQL Server的IDE,但上面是C#,不能用SSMS写。请花时间确保您正确标记。如果这与 MySQL 或 SSMS 无关,那么您不应该标记它们。
-
@Larnu 不小心抱歉
-
这与您在your last question 中报告的错误相同,只是成员不同,类不同。
-
@Amy 不同,因为在那个问题中我不需要使用数据和业务层,因为我没有从数据库中得到任何东西
-
问题仍然和那个帖子一样,这里的问题与你的数据层无关。这是因为您试图访问
chars.userid,但 chars 只是一个 List,它没有这样的属性。您想与列表中的实际项目进行比较,而不是列表本身。尝试利用调试器和智能感知,这些错误很容易识别。
标签: c# collections