![](/img/trans.png)
[英]How to retrieve ATTRIBUTE VALUE from specific ELEMENT VALUE in C#
[英]Retrieve object from an arraylist with a specific element value
我有一類帶有一些屬性的類。 例如,具有姓名,年齡,性別等屬性的班級人員。
人們填寫一張表格,除其他外,他們的性別是下拉列表,他們提交該表格並將該人添加到數組列表中。
我需要的是通過單擊按鈕來顯示所有選擇“女性”作為性別的人的功能。
有人能幫幫我嗎? 我已經嘗試並尋找正確答案幾天了,而現在卻有些絕望。
非常感謝!!!
奧拉夫
這是我的.cs代碼
public class Person
{
private string name;
private string artistname;
private string address;
private double number;
private double zip;
private string day;
private string gender;
public Person(string name, string artistname, string address, double number, double zip, string day, string gender)
{
this.name = name;
this.artistname = artistname;
this.address = address;
this.number = number;
this.zip = zip;
this.day = day;
this.gender = gender;
}
public override string ToString()
{
string newPerson = name + " aka " + artistname + " lives on " + address + " " + number + " " + zip + " " + day + "Gender: " + gender;
return newPerson;
}
}
這是我的.aspx代碼:
public partial class Index : System.Web.UI.Page
{
static ArrayList personArrayList;
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
personArrayList = new ArrayList();
}
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
Person p = new Person(txtName.Text, txtArtistName.Text, txtAddress.Text, Convert.ToDouble(txtNumber.Text), Convert.ToDouble(txtPostal.Text), Convert.ToString(dropdownDay.Text), Convert.ToString(dropdownGender.Text));
personArrayList.Add(p);
}
protected void btnShowAll_Click(object sender, EventArgs e)
{
ListBoxShow.Items.Clear();
for (int i = 0; i < personArrayList.Count; i++)
{
ListBoxShow.Items.Add(personArrayList[i].ToString());
}
}
protected void btnShowGentle_Click(object sender, EventArgs e)
{
ListBoxShow.Items.Clear();
}
protected void btnShowLadies_Click(object sender, EventArgs e)
{
ListBoxShow.Items.Clear();
for (int i = 0; i < personArrayList.Count; i++)
{
if (personArrayList[i].gender = "Female")
{
}
}
}
}
C#方法是利用LINQ來查詢集合,例如:
var persons = personArrayList.AsQueryable();
var females = persons.Where(p => p.gender.Equals("Female"));
我認為這樣的事情應該可以解決
using System.Linq;
var females = from Person P in personArrayList where P.Gender == "Female" select P;
[編輯]我本人對此有一些疑問,因此提出了一個問題平原ArrayList Linq c#2語法(需要轉換) ,可能對您有用。
謝謝那樣的事嗎
protected void btnShowGentle_Click(object sender, EventArgs e)
{
ListBoxShow.Items.Clear();
for (int i = 0; i < personArrayList.Count; i++)
{
if(personArrayList[i].gender == "Male")
ListBoxShow.Items.Add(personArrayList[i].ToString());
}
}
////Possible alternate
//ListBoxShow.Items.Clear();
//ListBoxShow.Items.AddRange(personArrayList.Where( x => x.gender == "Male"));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.