我试图找出哪些List<int>
出许多具有一定规模的元素简化IF子句和LINQ select语句
的发现变量的名称,例如输入:
List<int> list_1 = Enumerable.Range(1, 299).ToList();
List<int> list_2 = Enumerable.Range(1, 300).ToList();
List<int> list_3 = Enumerable.Range(1, 300).ToList();
List<int> list_4 = Enumerable.Range(1, 297).ToList();
我需要什么是记录名称的名单和金额的项目if
它已经少于我们说的300个值。现在,我可以为每个列表做当然是一个if
条款:
if (list_1.Count != 300)
{
//log name and number of items
}
if(list_2 ... and so on)
问:是否有查不到这个信息的更优雅的方式?
我试过一个LINQ解决方案,并将所有列表放入一个进行过滤。但在这我的问题是,我不能得到名称:
List<List<int>> allLists = new List<List<int>>();
allLists.Add(list_1);
allLists.Add(list_2);
allLists.Add(list_3);
allLists.Add(list_4);
string logRes = String.Join(" ", allLists.Where(x=>x.Count < 300)
.Select(x=> String.Format("Name: {0} Amount: {1}", nameof(x), x.Count)));
它返回:
名称:X金额:299名称:X金额:297
问题2:我怎样才能得到集合中邪恶列表的名字?
不会让使用'词典更有意义<字符串列表>',而不是列表清单?密钥可能包含列表的名称。 –
如果你使用的是C#6.0,你也可以使用NameOf表达式:http://gigi.nullneuron.net/gigilabs/c-6-preview-nameof-expressions/然而我同意字典会更优雅在这里解决。 –
@MasterYoda:他使用namof,但是这对LINQ查询没有帮助 –