C# 当值是类类型时,如何显示字典中的所有值
我有一个字典,我正试图显示所有的值。我发现答案的问题是,它们只返回键和值。我的值是我在存储库中创建的类型C# 当值是类类型时,如何显示字典中的所有值,c#,dictionary,C#,Dictionary,我有一个字典,我正试图显示所有的值。我发现答案的问题是,它们只返回键和值。我的值是我在存储库中创建的类型 下面是我的字典。My value是具有多个属性的My Badge类: public-class-BadgesRepository { 专用字典badgeDictionary=新字典(); 公共无效AddBadgeDictionaryEntry(内部badgeID,新Badge-newBadge) { badgeDictionary.Add(badgeID,newBadge); } } 以下
public-class-BadgesRepository
{
专用字典badgeDictionary=新字典();
公共无效AddBadgeDictionaryEntry(内部badgeID,新Badge-newBadge)
{
badgeDictionary.Add(badgeID,newBadge);
}
}
public class徽章
{
public int-BadgeID{get;set;}
公共字符串名称{get;set;}
公共列表门列表{get;set;}
}
private void ViewAllBadges()
{
Console.WriteLine(“下面列出了所有徽章数据:”);
Dictionary.ValueCollection值=
foreach(值中的徽章val)
{
WriteLine(“徽章ID:{0}”,val);
}
}
您只需要为您的Badge类methinks提供一个ToString方法。
根据他们的例子:
class Person
{
public int BadgeID { get; set; }
public string BadgeName { get; set; }
public List<string> DoorList { get; set; }
public override string ToString()
{
return BadgeID.ToString() + " " +
BadgeName + " "+
String.Join(", ", DoorList.ToArray());
}
}
班级人员
{
public int-BadgeID{get;set;}
公共字符串名称{get;set;}
公共列表门列表{get;set;}
公共重写字符串ToString()
{
返回BadgeID.ToString()+“”+
徽章名称+“”+
Join(“,”,DoorList.ToArray());
}
}
您只需要为您的Badge类methinks提供一个ToString方法。
根据他们的例子:
class Person
{
public int BadgeID { get; set; }
public string BadgeName { get; set; }
public List<string> DoorList { get; set; }
public override string ToString()
{
return BadgeID.ToString() + " " +
BadgeName + " "+
String.Join(", ", DoorList.ToArray());
}
}
班级人员
{
public int-BadgeID{get;set;}
公共字符串名称{get;set;}
公共列表门列表{get;set;}
公共重写字符串ToString()
{
返回BadgeID.ToString()+“”+
徽章名称+“”+
Join(“,”,DoorList.ToArray());
}
}
您可以在Badge类中重写ToString(),如roadrunner66所述
然后
或
(上面的代码只是一个想法,我还没有尝试构建此代码,所以可能会出现错误构建。)您可以在Badge类中重写ToString(),如roadrunner66所述
然后
或
(上面的代码只是想法,我还没有尝试构建这段代码,所以可能是错误构建。)
private void ViewAllBadges()
{
Console.WriteLine(“下面列出了所有徽章数据:”);
Dictionary.ValueCollection值=
foreach(值中的徽章val)
{
WriteLine(“徽章ID:{0}”,val);
}
}
看起来您想使用该属性。
将
ViewAllBadges
方法添加到BadgesRepository
类中。注意foreach
循环中的.Values
属性:
public-class-BadgesRepository
{
专用字典badgeDictionary=新字典();
公共无效AddBadgeDictionaryEntry(内部badgeID,新Badge-newBadge)
{
badgeDictionary.Add(badgeID,newBadge);
}
公共无效ViewAllBadges()
{
foreach(badgeDictionary.Values中的徽章)
{
控制台写入线(
$“徽章ID:{Badge.BadgeID},”+
$“徽章名称:{Badge.BadgeName},”+
$“门列表:{string.Join(“,”,badge.DoorList)}”);
}
}
}
你也可以像其他人建议的那样在你的徽章
课程中
public class徽章
{
public int-BadgeID{get;set;}
公共字符串名称{get;set;}
公共列表门列表{get;set;}
公共重写字符串ToString()
{
返回$“徽章ID:{BadgeID},”+
$“徽章名称:{BadgeName},”+
$“门列表:{string.Join(“,”,门列表)}”;
}
}
…并简化ViewAllBadges()
方法:
public void ViewAllBadges()
{
foreach(badgeDictionary.Values中的徽章)
{
Console.WriteLine(badge.ToString());
}
}
下面是一个调用代码示例:
var bd=new-BadgesRepository();
var badge1=新的Badge();
badge1.BadgeID=1;
badge1.BadgeName=“一”;
badge1.DoorList=新列表(){“门1”,“门100”};
bd.AddBadgeDictionaryEntry(1,badge1);
var badge2=新的Badge();
badge2.BadgeID=2;
badge2.BadgeName=“两个”;
badge2.DoorList=新列表(){“门2”,“门200”};
bd.AddBadgeDictionaryEntry(2,badge2);
var badge3=新的Badge();
badge3.BadgeID=3;
badge3.BadgeName=“三”;
badge3.DoorList=新列表(){“门3”,“门300”};
bd.AddBadgeDictionaryEntry(3,badge3);
bd.ViewAllBadges();
private void ViewAllBadges()
{
Console.WriteLine(“下面列出了所有徽章数据:”);
Dictionary.ValueCollection值=
foreach(值中的徽章val)
{
WriteLine(“徽章ID:{0}”,val);
}
}
看起来您想使用该属性。
将
ViewAllBadges
方法添加到BadgesRepository
类中。注意foreach
循环中的.Values
属性:
public-class-BadgesRepository
{
专用字典badgeDictionary=新字典();
公共无效AddBadgeDictionaryEntry(内部badgeID,新Badge-newBadge)
{
badgeDictionary.Add(badgeID,newBadge);
}
公共无效ViewAllBadges()
{
foreach(badgeDictionary.Values中的徽章)
{
控制台写入线(
$“徽章ID:{Badge.BadgeID},”+
$“徽章名称:{Badge.BadgeName},”+
$“门列表:{string.Join(“,”,badge.DoorList)}”);
}
}
}
你也可以像其他人建议的那样在你的徽章
课程中
public class徽章
{
public int-BadgeID{get;set;}
公共字符串名称{get;set;}
公共列表门列表{get;set;}
公共重写字符串ToString()
{
返回$“徽章ID:{BadgeID},”+
$“徽章名称:{BadgeName},
private void ViewAllBadges()
{
Console.WriteLine("All badge data is listed below: ");
Dictionary<int, Badge>.ValueCollection values =
foreach (Badge val in values)
{
Console.WriteLine("Badge ID: {0}", val);
}
}
class Person
{
public int BadgeID { get; set; }
public string BadgeName { get; set; }
public List<string> DoorList { get; set; }
public override string ToString()
{
return BadgeID.ToString() + " " +
BadgeName + " "+
String.Join(", ", DoorList.ToArray());
}
}
foreach (var item in badgeDictionary)
{
Badge badge = item.Value;
Console.WriteLine(badge.ToString());
}
foreach (var item in badgeDictionary)
{
Badge badge = item.Value;
Console.WriteLine("Badge ID: {0} BadgeName {1} DoorList {2}", badge.BadgeID, badge.BadgeName, String.Join(", ", badge.DoorList.ToArray()));
}