2016-08-02 22 views
0
struct SessionStruct 
{ 
    object Obj; 
    string token; 
} 
SortedList <string,SessionStruct> sessionsList=new SortedList<string,SessionStruct>(); 
SessionStruct structObj; 

我需要找出是否有sessionList其中structObjstructObj.token="somestring"填补sessionList后。 我可以得到arraySessionStruct,并做foreach寻找所需的标记。不过,我想知道是否有任何优雅的方式来完成这项任务。如果有任何使用LINQ的方法?找出对象的字段排序列表

+1

你有没有试过'sessionList.Where(s => s.token ==“somestring”)'? –

+0

你在'SortedList'中使用了什么'Key'? –

回答

0

选中此项。

sessionsList.Any(ss => ss.Value.token == "somestring")会给你一个布尔

+0

关闭,但'ss'的类型为'KeyValuePair ' –

+0

非常感谢!备注:sessionList.Any(s => s.Value.token ==“somestring”)。 VS接受了这段代码。 – Riddik

+0

或者,你可以使用'sessionsList.Values.Any(ss => ss.token ==“somestring”)' –

0

假设你的结构的属性定义为public(在你的例子是没有),你可以做到以下几点:

SortedList<string, SessionStruct> sessionsList = new SortedList<string, SessionStruct>(); 
var exists = sessionsList.Any(s => s.Value.token.Equals("somestring")); 

struct,具有公共属性:

public struct SessionStruct 
{ 
    public object Obj; 
    public string token; 
}