C# 搜索类是否包含特定属性
我的项目中有一个设置文件,其中包含一些C# 搜索类是否包含特定属性,c#,settings,C#,Settings,我的项目中有一个设置文件,其中包含一些StringCollection(用户一个)。每个StringCollection都使用用户名命名,并包含此用户的一个或多个值。例如,如果用户名为“User1”,则设置将包含以下内容: <setting name="User1" serializeAs="Xml"> <value> <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-ins
StringCollection
(用户一个)。每个StringCollection
都使用用户名命名,并包含此用户的一个或多个值。例如,如果用户名为“User1”,则设置将包含以下内容:
<setting name="User1" serializeAs="Xml">
<value>
<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<string>mail1@test.com</string>
<string>mail2@test.com</string>
</ArrayOfString>
</value>
</setting>
在我的例子中,我有一个字段Properties.Settings.Default.User1
。因此,UserExists(“User1”)
必须为True
,UserExists(“User2”)
必须为False
您可以将设置加载为,并在集合上调用Contains()
,以确定您的用户是否存在
范例
private bool UserExists(String user)
{
// Test if a StringCollection is named "user"
return Properties.Settings.Default.User1.Contains(user);
}
编辑
您要做的是查找设置是否存在,因为您可以尝试类似的方法
private bool UserExist(string user)
{
return Properties.Settings.Default.Properties.Cast<SettingsProperty>().Any(prop => prop.Name == user);
}
private bool UserExist(字符串用户)
{
返回Properties.Settings.Default.Properties.Cast().Any(prop=>prop.Name==user);
}
还是你在找这样的东西
private bool UserExists(String user)
{
// Test if a StringCollection is named "user"
return user == Properties.Settings.Default.name ;
}
你的问题不清楚,你的澄清混淆了问题。您的标题是“如果字符串文件包含字段,则搜索”,然后您声明希望查看您的设置是否包含某个用户,而您的说明似乎表明您需要集合的名称?由于该列表中的第一项和最后一项没有多大意义,我将回答第二项 根据扩展方法
.Contains()
下面是文档化示例的修改版本,它与您的问题更加吻合
using System;
using System.Collections;
using System.Collections.Specialized;
public class SamplesStringCollection
{
public static void Main()
{
// Creates and initializes a new StringCollection.
StringCollection myCol = new StringCollection
{
"mail1@gmail.com",
"mail2@gmail.com",
"mail3@gmail.com",
"mail4@gmail.com"
};
if (UserExists(myCol, "mail2@gmail.com"))
{
Console.WriteLine("User 2 exists!");
}
}
private static bool UserExists(IList myCol, string user)
{
return myCol.Contains(user);
}
}
我查找了它,但是属性.Settings
是从全局::系统.Configuration.ApplicationSettingsBase
继承的类。StringCollection
是此类上的一个字段。但是您应该能够通过调用该属性在代码端获得一个StringCollection
对象。像Properties.Settings.Default.User1
这应该会给你StringCollection
对象。@A.pissica我已经根据你的问题编辑了我的答案我编辑了我的问题,我希望它更清楚。我想测试我的设置中的属性是否命名为“user”。@a.Pissicat Rushi Vyas发布了一个与您的说明相匹配的工作解决方案。
using System;
using System.Collections;
using System.Collections.Specialized;
public class SamplesStringCollection
{
public static void Main()
{
// Creates and initializes a new StringCollection.
StringCollection myCol = new StringCollection
{
"mail1@gmail.com",
"mail2@gmail.com",
"mail3@gmail.com",
"mail4@gmail.com"
};
if (UserExists(myCol, "mail2@gmail.com"))
{
Console.WriteLine("User 2 exists!");
}
}
private static bool UserExists(IList myCol, string user)
{
return myCol.Contains(user);
}
}