这里我有一个简单的例子来查找字符串列表中的项目.通常我使用for循环或匿名委托来这样做:
int GetItemIndex(string search)
{
int found = -1;
if ( _list != null )
{
foreach (string item in _list) // _list is an instance of List<string>
{
found++;
if ( string.Equals(search, item) )
{
break;
}
}
/* use anonymous delegate
string foundItem = _list.Find( delegate(string item) {
found++;
return string.Equals(search, item);
});
*/
}
return found;
}
Run Code Online (Sandbox Code Playgroud)
LINQ对我来说是新的.我很好奇我是否可以使用LINQ来查找列表中的项目?怎么可能?
我有像这样的字符串列表,
list[0]="want"
list[1]="to"
list[2]="create"
list[3]="user"
list[4]="account"
Run Code Online (Sandbox Code Playgroud)
我需要取"user"字符串的索引值.即,我试过这种方式,
list.Where(o => o.Contains("user")).ToList();
Run Code Online (Sandbox Code Playgroud)
我知道它不会返回索引位置.我怎样才能做到这一点?Anyhelp?
我面临一个奇怪的问题,我没有用c#编写太多程序而且最近才开始编程,所以如果这个问题实际上只是一个初学者的错误,我会事先道歉.
int i = 0;
var index = from x in (
from v in Category.Items
select new { Key = i++, Value = v })
where ((MenuCategory) x.Value).id == menuItems[items.SelectedIndex].category
select x.Key;
Run Code Online (Sandbox Code Playgroud)
我正在尝试获取特定对象的索引Category.Items[](其中字段id是特定值menuItems[items.SelectedIndex].category)
很难解释我用"普通"语言编写它的问题所以我只是发布我的代码(它会更容易理解):
我上课了File:
public class File
{
public string Url { get; set; }
public string Name { get; set; }
public string Date { get; set; }
public Bitmap Bitmap { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
所以我创建了一个列表files:
var files = new List<File>();
Run Code Online (Sandbox Code Playgroud)
而且,我已用数据填充它.
现在我有一个string(只有那个.)我想找到包含string在我的列表中的元素的索引.
就像是:
int index = files.IndexOf(new File
{
string.Empty,
myString,
string.Empty,
null
});
Run Code Online (Sandbox Code Playgroud)
任何的想法?