C# 为什么我的元组集合的值不显示在watch中?
为什么当我运行这个控制台应用程序时:C# 为什么我的元组集合的值不显示在watch中?,c#,tuples,C#,Tuples,为什么当我运行这个控制台应用程序时: static void Main(string[] args) { var items = new List<(string login, string email)>(); items.Add(("james", "lsdkjsdkj@skdfjd.dfkd")); items.Add(("james2", "lsdkjsdkj@df333.dfkd")); items.Add(("james", "lsdkjs
static void Main(string[] args)
{
var items = new List<(string login, string email)>();
items.Add(("james", "lsdkjsdkj@skdfjd.dfkd"));
items.Add(("james2", "lsdkjsdkj@df333.dfkd"));
items.Add(("james", "lsdkjsdkj@skdfjd.dfkd"));
items.Add(("james2", "lsdkjsdkj@df333.dfkd"));
foreach (var item in items)
{
Console.WriteLine(item.email);
}
var duplicates = items.Where(e => e.login == "james");
Console.WriteLine(duplicates.Count());
foreach (var duplicate in duplicates)
{
Console.WriteLine($"Found: {duplicate.login}, {duplicate.email}");
}
Console.ReadLine();
}
static void Main(字符串[]args)
{
var items=新列表();
项目。添加((“詹姆斯”,”lsdkjsdkj@skdfjd.dfkd"));
项目。添加((“james2”,”lsdkjsdkj@df333.dfkd"));
项目。添加((“詹姆斯”,”lsdkjsdkj@skdfjd.dfkd"));
项目。添加((“james2”,”lsdkjsdkj@df333.dfkd"));
foreach(项目中的var项目)
{
Console.WriteLine(item.email);
}
var duplicates=items.Where(e=>e.login==“james”);
Console.WriteLine(duplicates.Count());
foreach(var重复中的重复)
{
WriteLine($“找到:{duplicate.login},{duplicate.email}”);
}
Console.ReadLine();
}
它正确地向我显示了重复变量的内容
:
static void Main(string[] args)
{
var items = new List<(string login, string email)>();
items.Add(("james", "lsdkjsdkj@skdfjd.dfkd"));
items.Add(("james2", "lsdkjsdkj@df333.dfkd"));
items.Add(("james", "lsdkjsdkj@skdfjd.dfkd"));
items.Add(("james2", "lsdkjsdkj@df333.dfkd"));
foreach (var item in items)
{
Console.WriteLine(item.email);
}
var duplicates = items.Where(e => e.login == "james");
Console.WriteLine(duplicates.Count());
foreach (var duplicate in duplicates)
{
Console.WriteLine($"Found: {duplicate.login}, {duplicate.email}");
}
Console.ReadLine();
}
static void Main(string[] args)
{
var items = new List<(string login, string email)>();
items.Add(("james", "lsdkjsdkj@skdfjd.dfkd"));
items.Add(("james2", "lsdkjsdkj@df333.dfkd"));
items.Add(("james", "lsdkjsdkj@skdfjd.dfkd"));
items.Add(("james2", "lsdkjsdkj@df333.dfkd"));
foreach (var item in items)
{
Console.WriteLine(item.email);
}
var duplicates = items.Where(e => e.login == "james");
Console.WriteLine(duplicates.Count());
foreach (var duplicate in duplicates)
{
Console.WriteLine($"Found: {duplicate.login}, {duplicate.email}");
}
Console.ReadLine();
}
但是当我调试时,它不会显示重复的的内容:
static void Main(string[] args)
{
var items = new List<(string login, string email)>();
items.Add(("james", "lsdkjsdkj@skdfjd.dfkd"));
items.Add(("james2", "lsdkjsdkj@df333.dfkd"));
items.Add(("james", "lsdkjsdkj@skdfjd.dfkd"));
items.Add(("james2", "lsdkjsdkj@df333.dfkd"));
foreach (var item in items)
{
Console.WriteLine(item.email);
}
var duplicates = items.Where(e => e.login == "james");
Console.WriteLine(duplicates.Count());
foreach (var duplicate in duplicates)
{
Console.WriteLine($"Found: {duplicate.login}, {duplicate.email}");
}
Console.ReadLine();
}
属性只是枚举器当前位置集合中的一个元素
static void Main(string[] args)
{
var items = new List<(string login, string email)>();
items.Add(("james", "lsdkjsdkj@skdfjd.dfkd"));
items.Add(("james2", "lsdkjsdkj@df333.dfkd"));
items.Add(("james", "lsdkjsdkj@skdfjd.dfkd"));
items.Add(("james2", "lsdkjsdkj@df333.dfkd"));
foreach (var item in items)
{
Console.WriteLine(item.email);
}
var duplicates = items.Where(e => e.login == "james");
Console.WriteLine(duplicates.Count());
foreach (var duplicate in duplicates)
{
Console.WriteLine($"Found: {duplicate.login}, {duplicate.email}");
}
Console.ReadLine();
}
从MSDN:
static void Main(string[] args)
{
var items = new List<(string login, string email)>();
items.Add(("james", "lsdkjsdkj@skdfjd.dfkd"));
items.Add(("james2", "lsdkjsdkj@df333.dfkd"));
items.Add(("james", "lsdkjsdkj@skdfjd.dfkd"));
items.Add(("james2", "lsdkjsdkj@df333.dfkd"));
foreach (var item in items)
{
Console.WriteLine(item.email);
}
var duplicates = items.Where(e => e.login == "james");
Console.WriteLine(duplicates.Count());
foreach (var duplicate in duplicates)
{
Console.WriteLine($"Found: {duplicate.login}, {duplicate.email}");
}
Console.ReadLine();
}
在下列任何情况下,电流未定义:
static void Main(string[] args)
{
var items = new List<(string login, string email)>();
items.Add(("james", "lsdkjsdkj@skdfjd.dfkd"));
items.Add(("james2", "lsdkjsdkj@df333.dfkd"));
items.Add(("james", "lsdkjsdkj@skdfjd.dfkd"));
items.Add(("james2", "lsdkjsdkj@df333.dfkd"));
foreach (var item in items)
{
Console.WriteLine(item.email);
}
var duplicates = items.Where(e => e.login == "james");
Console.WriteLine(duplicates.Count());
foreach (var duplicate in duplicates)
{
Console.WriteLine($"Found: {duplicate.login}, {duplicate.email}");
}
Console.ReadLine();
}
- 枚举数位于集合中第一个元素之前,紧随创建枚举数之后。在读取Current的值之前,必须调用以将枚举数前进到集合的第一个元素
static void Main(string[] args)
{
var items = new List<(string login, string email)>();
items.Add(("james", "lsdkjsdkj@skdfjd.dfkd"));
items.Add(("james2", "lsdkjsdkj@df333.dfkd"));
items.Add(("james", "lsdkjsdkj@skdfjd.dfkd"));
items.Add(("james2", "lsdkjsdkj@df333.dfkd"));
foreach (var item in items)
{
Console.WriteLine(item.email);
}
var duplicates = items.Where(e => e.login == "james");
Console.WriteLine(duplicates.Count());
foreach (var duplicate in duplicates)
{
Console.WriteLine($"Found: {duplicate.login}, {duplicate.email}");
}
Console.ReadLine();
}
对MoveNext的最后一次调用返回false,这表示集合结束
static void Main(string[] args)
{
var items = new List<(string login, string email)>();
items.Add(("james", "lsdkjsdkj@skdfjd.dfkd"));
items.Add(("james2", "lsdkjsdkj@df333.dfkd"));
items.Add(("james", "lsdkjsdkj@skdfjd.dfkd"));
items.Add(("james2", "lsdkjsdkj@df333.dfkd"));
foreach (var item in items)
{
Console.WriteLine(item.email);
}
var duplicates = items.Where(e => e.login == "james");
Console.WriteLine(duplicates.Count());
foreach (var duplicate in duplicates)
{
Console.WriteLine($"Found: {duplicate.login}, {duplicate.email}");
}
Console.ReadLine();
}
由于在集合中所做的更改(例如添加、修改或删除元素),枚举数无效
因此,如果调用duplicates.GetEnumerator().MoveNext()
您将看到当前的中现在有数据
static void Main(string[] args)
{
var items = new List<(string login, string email)>();
items.Add(("james", "lsdkjsdkj@skdfjd.dfkd"));
items.Add(("james2", "lsdkjsdkj@df333.dfkd"));
items.Add(("james", "lsdkjsdkj@skdfjd.dfkd"));
items.Add(("james2", "lsdkjsdkj@df333.dfkd"));
foreach (var item in items)
{
Console.WriteLine(item.email);
}
var duplicates = items.Where(e => e.login == "james");
Console.WriteLine(duplicates.Count());
foreach (var duplicate in duplicates)
{
Console.WriteLine($"Found: {duplicate.login}, {duplicate.email}");
}
Console.ReadLine();
}
如果要在调试时查看重复的内容,请使用结果视图
该属性只是枚举数当前位置集合中的一个元素
static void Main(string[] args)
{
var items = new List<(string login, string email)>();
items.Add(("james", "lsdkjsdkj@skdfjd.dfkd"));
items.Add(("james2", "lsdkjsdkj@df333.dfkd"));
items.Add(("james", "lsdkjsdkj@skdfjd.dfkd"));
items.Add(("james2", "lsdkjsdkj@df333.dfkd"));
foreach (var item in items)
{
Console.WriteLine(item.email);
}
var duplicates = items.Where(e => e.login == "james");
Console.WriteLine(duplicates.Count());
foreach (var duplicate in duplicates)
{
Console.WriteLine($"Found: {duplicate.login}, {duplicate.email}");
}
Console.ReadLine();
}
从MSDN:
static void Main(string[] args)
{
var items = new List<(string login, string email)>();
items.Add(("james", "lsdkjsdkj@skdfjd.dfkd"));
items.Add(("james2", "lsdkjsdkj@df333.dfkd"));
items.Add(("james", "lsdkjsdkj@skdfjd.dfkd"));
items.Add(("james2", "lsdkjsdkj@df333.dfkd"));
foreach (var item in items)
{
Console.WriteLine(item.email);
}
var duplicates = items.Where(e => e.login == "james");
Console.WriteLine(duplicates.Count());
foreach (var duplicate in duplicates)
{
Console.WriteLine($"Found: {duplicate.login}, {duplicate.email}");
}
Console.ReadLine();
}
在下列任何情况下,电流未定义:
static void Main(string[] args)
{
var items = new List<(string login, string email)>();
items.Add(("james", "lsdkjsdkj@skdfjd.dfkd"));
items.Add(("james2", "lsdkjsdkj@df333.dfkd"));
items.Add(("james", "lsdkjsdkj@skdfjd.dfkd"));
items.Add(("james2", "lsdkjsdkj@df333.dfkd"));
foreach (var item in items)
{
Console.WriteLine(item.email);
}
var duplicates = items.Where(e => e.login == "james");
Console.WriteLine(duplicates.Count());
foreach (var duplicate in duplicates)
{
Console.WriteLine($"Found: {duplicate.login}, {duplicate.email}");
}
Console.ReadLine();
}
- 枚举数位于集合中第一个元素之前,紧随创建枚举数之后。在读取Current的值之前,必须调用以将枚举数前进到集合的第一个元素
static void Main(string[] args)
{
var items = new List<(string login, string email)>();
items.Add(("james", "lsdkjsdkj@skdfjd.dfkd"));
items.Add(("james2", "lsdkjsdkj@df333.dfkd"));
items.Add(("james", "lsdkjsdkj@skdfjd.dfkd"));
items.Add(("james2", "lsdkjsdkj@df333.dfkd"));
foreach (var item in items)
{
Console.WriteLine(item.email);
}
var duplicates = items.Where(e => e.login == "james");
Console.WriteLine(duplicates.Count());
foreach (var duplicate in duplicates)
{
Console.WriteLine($"Found: {duplicate.login}, {duplicate.email}");
}
Console.ReadLine();
}
对MoveNext的最后一次调用返回false,这表示集合结束
static void Main(string[] args)
{
var items = new List<(string login, string email)>();
items.Add(("james", "lsdkjsdkj@skdfjd.dfkd"));
items.Add(("james2", "lsdkjsdkj@df333.dfkd"));
items.Add(("james", "lsdkjsdkj@skdfjd.dfkd"));
items.Add(("james2", "lsdkjsdkj@df333.dfkd"));
foreach (var item in items)
{
Console.WriteLine(item.email);
}
var duplicates = items.Where(e => e.login == "james");
Console.WriteLine(duplicates.Count());
foreach (var duplicate in duplicates)
{
Console.WriteLine($"Found: {duplicate.login}, {duplicate.email}");
}
Console.ReadLine();
}
由于在集合中所做的更改(例如添加、修改或删除元素),枚举数无效
因此,如果调用duplicates.GetEnumerator().MoveNext()
您将看到当前的中现在有数据
static void Main(string[] args)
{
var items = new List<(string login, string email)>();
items.Add(("james", "lsdkjsdkj@skdfjd.dfkd"));
items.Add(("james2", "lsdkjsdkj@df333.dfkd"));
items.Add(("james", "lsdkjsdkj@skdfjd.dfkd"));
items.Add(("james2", "lsdkjsdkj@df333.dfkd"));
foreach (var item in items)
{
Console.WriteLine(item.email);
}
var duplicates = items.Where(e => e.login == "james");
Console.WriteLine(duplicates.Count());
foreach (var duplicate in duplicates)
{
Console.WriteLine($"Found: {duplicate.login}, {duplicate.email}");
}
Console.ReadLine();
}
如果要在调试时查看重复的内容,请使用结果视图
它显示在结果视图内
。如果您在Where子句后添加了ToList(),它应该在该点显示。重复项只是一个可枚举项,需要枚举。LINQ是懒惰的,除非您使用类似ToList或ToArray的内容强制枚举。SeM的回答是正确的,从更直接的角度来看。奇怪的是,副本
*不应该有.Current
IEnumerable
具有GetEnumerator
并且GetEnumerator
返回一个执行该操作的IEnumerator
。奇怪的是,重复项
,在被枚举之前,具有.Current
属性。@LasseVågsætherKarlsen这不仅是元组
,我还用列表()进行了测试代码>,结果相同,当前
属性在调试时存在。编辑:它每次都显示当前的,即使在(新字符串[]{“james”,“james2”,“james”,“james2”})中也是如此
它显示在结果视图内
。如果您在Where子句后添加了ToList(),它应该在该点显示。重复项只是一个可枚举项,需要枚举。LINQ是懒惰的,除非您使用类似ToList或ToArray的内容强制枚举。SeM的回答是正确的,从更直接的角度来看。奇怪的是,副本
*不应该有.Current
IEnumerable
具有GetEnumerator
并且GetEnumerator
返回一个执行该操作的IEnumerator
。奇怪的是,重复项
,在被枚举之前,具有.Current
属性。@LasseVågsætherKarlsen这不仅是元组
,我还用列表()进行了测试代码>,结果相同,当前
属性在调试时存在。编辑:它每次都显示当前的,即使在(新字符串[]{“james”,“james2”,“james”,“james2”})中也是如此
奇怪的是,枚举数有当前属性,而不是枚举数,除非对于这样的可数,他们伪造并组合了它,但这似乎也很奇怪。@LasseVågsætherKarlsen非常奇怪,我想这与元组
有关。奇怪的是,枚举数有当前属性,而不是枚举数,除非他们伪造了这样的元组并将其组合起来,但这似乎也很奇怪。@LasseVågsætherKarlsen这很奇怪,我想这与元组有关。
static void Main(string[] args)
{
var items = new List<(string login, string email)>();
items.Add(("james", "lsdkjsdkj@skdfjd.dfkd"));
items.Add(("james2", "lsdkjsdkj@df333.dfkd"));
items.Add(("james", "lsdkjsdkj@skdfjd.dfkd"));
items.Add(("james2", "lsdkjsdkj@df333.dfkd"));
foreach (var item in items)
{
Console.WriteLine(item.email);
}
var duplicates = items.Where(e => e.login == "james");
Console.WriteLine(duplicates.Count());
foreach (var duplicate in duplicates)
{
Console.WriteLine($"Found: {duplicate.login}, {duplicate.email}");
}
Console.ReadLine();
}