How to select multiple objects in a LINQ Query?

How to select multiple objects in a LINQ Query? I am working with Yahoo politics news feed. I want to display only news that has "Obama" name in description. The idea is I want to only fetch elements and populate the "var" if certain key words exist in the description element, but I cannot do it; however, I am trying, but cannot generate the solution. My query looks like this, which is definitely not producing result:

 var feeds = from feed in xdoc.Descendants("item")
                    where feed.Element("description").Value == "Obama"
                    select new
                    {
                        title = feed.Element("title").Value,
                        url = feed.Element("link").Value.Replace(replaceString, ""),
                        description = feed.Element("description").Value.
                        Replace(replaceString, "").Replace("&", "&").Replace("—", "--").Contains("Obama"),
                        date = feed.Element("pubDate").Value
                    };


Please tell me how to select multiple objects in a LINQ query. I also paste the front end and back end files.
<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Your Daily Source of News By LINQ .NET 3.5</title>
    <style type="text/css">
        body {
	 font-family:Verdana;
	 color:#CCCCFF;
	  background-color:Black;
}

    .accordionHeader
{
    border: 1px solid #EBDDE2;
    color: white;
    background-color: 	#5E5A80;
	font-family: Verdana;
	font-size: 12px;
	font-weight: bold;
    padding: 5px;
    margin-top: 5px;
    cursor: pointer;
}
.accordionContent
{
    border: 2px solid #EBDDE2;
    color: #ccccff;
	font-family: Verdana;
	font-size: 12px;

    padding: 5px;
    margin-top: 5px;
    
}
.accordionIntroContent
{
    padding: 1px;  
}
.accordionIntroContent a:link
{
   color: #5E5A80;
	font-family: Verdana;
	font-size: 10px;
	text-decoration:none;    
}
.accordionIntroContent a:hover
{
    color: #5E5A80;
	font-family: Verdana;
	font-size: 10px;
	text-decoration:underline;  
}
.accordionIntroContent a:visited
{
    color: #5E5A80;
	font-family: Verdana;
	font-size: 10px;
	text-decoration:none;   
}
#page-wrap {
	background: white;
	min-width: 500px;
	max-width: 1260px;
	margin: 10px auto;
	}
	#page-wrap #inside {
		margin: 30px 30px 0px 30px;
		padding-top: 10px;
		padding-bottom: 5px;
	}
	#leftContent  
	{

	float: left;
	padding-left: 50px;
	padding-top: 20px;
	color:#444444;
	font-family:Verdana;
	font-size:12px;
}
#contentHeader  
{
      font-stretch:wider;

}

.contet
{
    	border-left-color:#444;
	border-left-style:dashed;
 border-left-width:1px;
 height:400px;
 overflow:auto;
 background-color:Black;
}
    
#content {    
	padding-left: 230px;
	padding-right:100px;
}
#header {
	text-align: center;
	padding-bottom:10px;
	color:#5E5A80; font-family:Verdana; letter-spacing:.1em;
}

.button  
{
    background-color:Transparent;
	  font-family:Verdana;
	  font-size:10px;height:20px;
	  text-align:center;
	  border-style:outset;
	  border-bottom-color:#FEFFF1;
	  border-width:2;
	  
} 

#contentHeader a:link
{
    color:#5E5A80;
    text-decoration:none;
    letter-spacing:.2em;font-size:15px;font-weight:bold;
    
}
#contentHeader a:hover
{
    color:#5E5A80;
    text-decoration:underline; letter-spacing:.2em;font-size:15px;font-weight:bold;
    
}
#contentHeader a:visited
{
    color:#5E5A80;
    text-decoration:none;
    letter-spacing:.2em;font-size:15px;font-weight:bold;    
}

    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div id="page-wrap">
      <div id="inside"><div id="header">
          <asp:HyperLink ID="HyperLink2" runat="server"><h1>Your Daily Source of News by Linq .NET 3.5</h1></asp:HyperLink>
			</div>

      
      
<div id="leftContent">
<table><tr><td>Select a category:</td></tr>
<tr><td>
 <asp:DropDownList ID="DropDownList1" runat="server" Font-Names="Verdana" Font-Size="8" ForeColor="#444444">
            <asp:ListItem Value="topstories">Top Stories</asp:ListItem>
            <asp:ListItem Value="us">US News</asp:ListItem>
            <asp:ListItem Value="world">World News</asp:ListItem>
            <asp:ListItem Value="politics">Politics</asp:ListItem>
            <asp:ListItem Value="business">Business</asp:ListItem>
            <asp:ListItem Value="tech">Technology</asp:ListItem>
            <asp:ListItem Value="mostviewed">Most Viewed</asp:ListItem>
            <asp:ListItem Value="science">Science News</asp:ListItem>
            <asp:ListItem Value="health">Health News</asp:ListItem>
            <asp:ListItem Value="entertainment">Entertainment</asp:ListItem>
        </asp:DropDownList>                
</td>

</tr>
<tr><td>        <asp:Button ID="Button1" runat="server" Text="Submit Query" onclick="Button1_Click" CssClass="button"/>
</td></tr>

</table>
    <asp:Panel ID="Panel1" runat="server" Visible="false">
    
<table><tr><td>Democrat</td>
           <td><asp:CheckBox ID="CheckBox1" runat="server" /></td>
       </tr>
       <tr><td>Republican</td>
           <td><asp:CheckBox ID="CheckBox2" runat="server" /></td>
       </tr>
       <tr><td>Unemployment</td>
           <td><asp:CheckBox ID="CheckBox3" runat="server" /></td>
       </tr>
       <tr><td>President</td>
           <td><asp:CheckBox ID="CheckBox4" runat="server" /></td>
       </tr>
       <tr><td>Senator</td>
           <td><asp:CheckBox ID="CheckBox5" runat="server" /></td>
       </tr>
       <tr><td>California</td>
           <td><asp:CheckBox ID="CheckBox6" runat="server" /></td>
       </tr>
       <tr><td colspan="2"><asp:Button ID="Button2" runat="server" Text="Button" 
               CssClass="button" onclick="Button2_Click" />
           </td>
       </tr></table>
</asp:Panel>
       
</div>
<div id="content">
        <div id="contentHeader">

    <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="http://rss.news.yahoo.com/rss/topstories">
        <asp:Label ID="Label1" runat="server" Text="Yahoo! Top Stories"></asp:Label></asp:HyperLink>
</div>
<div class="contet">

    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>   
    
    <cc1:Accordion ID="Accordion1" runat="server" 
         
         HeaderCssClass="accordionHeader"
         HeaderSelectedCssClass="accordionHeader"
         ContentCssClass="accordionContent"
         AutoSize="None" 
         FadeTransitions="true"
         TransitionDuration="250"
         FramesPerSecond="30"
         RequireOpenedPane="false"
         SuppressHeaderPostbacks="True" 
         SelectedIndex="0" 
         
         >
         
     
         <HeaderTemplate >
            <%# Eval("title") %> 
             
         </HeaderTemplate> 
         <ContentTemplate> <div class="accordionIntroContent"><a href='<%#Eval("url")%>'><%#Eval("date")%></a></div>
            <%#Eval("description")%> 
         </ContentTemplate>        
   
</cc1:Accordion>
</div>
<br /><br />
   </div>

    </div>

    </div>
    </form>
</body>
</html>
........................................................
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Xml.Linq;


public partial class _Default : System.Web.UI.Page
{
    string replaceString = "http://us.rd.yahoo.com/dailynews/rss/topstories/*";
    protected void Page_Load(object sender, EventArgs e)
    {
        XDocument xdoc = XDocument.Load("http://rss.news.yahoo.com/rss/topstories");
        var mainTitle = xdoc.Descendants("title");
        var mainLink = xdoc.Descendants("link");
        var feeds = from feed in xdoc.Descendants("item")
                    select new
                    {
                        title = feed.Element("title").Value,
                        url = feed.Element("link").Value.Replace(replaceString, ""),
                        description = feed.Element("description").Value.
                        Replace(replaceString, "").Replace("&", "&amp;").Replace("&amp;mdash;", "--"),
                        date = feed.Element("pubDate").Value

                    };

        Accordion1.DataSource = feeds;
        Accordion1.DataBind();
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        string selectedValue = DropDownList1.SelectedValue;
        goThroughIfProcedure(selectedValue, replaceString);
        string url = "http://rss.news.yahoo.com/rss/";
        url += selectedValue;
        XDocument xdoc = XDocument.Load(url);
        var feeds = from feed in xdoc.Descendants("item")
                    select new
                    {
                        title = feed.Element("title").Value,
                        url = feed.Element("link").Value.Replace(replaceString, ""),
                        description = feed.Element("description").Value.
                        Replace(replaceString, "").Replace("&", "&amp;").Replace("&amp;mdash;", "--"),
                        date = feed.Element("pubDate").Value
                    };

        Accordion1.DataSource = feeds;
        Accordion1.DataBind();
        Accordion1.SelectedIndex = 0;
    }
    
    private void goThroughIfProcedure(string selectedValue, string replaceString)
    {
        if (selectedValue == "topstories")
        {
            Label1.Text = "Yahoo! Top Stories";
            HyperLink1.NavigateUrl = "http://rss.news.yahoo.com/rss/topstories";
            replaceString = "http://us.rd.yahoo.com/dailynews/rss/topstories/*";
        }
        else if (selectedValue == "us")
        {
            Label1.Text = "Yahoo! US News";
            HyperLink1.NavigateUrl = "http://rss.news.yahoo.com/rss/us";
            replaceString = "http://us.rd.yahoo.com/dailynews/rss/us/*";

        }
        else if (selectedValue == "world")
        {
            Label1.Text = "Yahoo! World News";
            HyperLink1.NavigateUrl = "http://rss.news.yahoo.com/rss/world";
            replaceString = "http://us.rd.yahoo.com/dailynews/rss/world/*";

        }
        else if (selectedValue == "politics")
        {
            Label1.Text = "Yahoo! Politics News";
            HyperLink1.NavigateUrl = "http://rss.news.yahoo.com/rss/politics";
            replaceString = "http://us.rd.yahoo.com/dailynews/rss/politics/*";
            Panel1.Visible = true;

        }
        else if (selectedValue == "business")
        {
            Label1.Text = "Yahoo! Business news";
            HyperLink1.NavigateUrl = "http://rss.news.yahoo.com/rss/business";
            replaceString = "http://us.rd.yahoo.com/dailynews/rss/business/*";

        }
        else if (selectedValue == "tech")
        {
            Label1.Text = "Yahoo! Technology News";
            HyperLink1.NavigateUrl = "http://rss.news.yahoo.com/rss/tech";
            replaceString = "http://us.rd.yahoo.com/dailynews/rss/tech/*";

        }
        else if (selectedValue == "mostviewed")
        {
            Label1.Text = "Yahoo! Most Viewed";
            HyperLink1.NavigateUrl = "http://rss.news.yahoo.com/rss/mostviewed";
            replaceString = "http://us.rd.yahoo.com/dailynews/rss/mostviewed/*";

        }
        else if (selectedValue == "science")
        {
            Label1.Text = "Yahoo! Science News";
            HyperLink1.NavigateUrl = "http://rss.news.yahoo.com/rss/science";
            replaceString = "http://us.rd.yahoo.com/dailynews/rss/science/*";

        }
        else if (selectedValue == "health")
        {
            Label1.Text = "Yahoo! Health News";
            HyperLink1.NavigateUrl = "http://rss.news.yahoo.com/rss/health";
            replaceString = "http://us.rd.yahoo.com/dailynews/rss/health/*";
        }
        else if (selectedValue == "entertainment")
        {
            Label1.Text = "Yahoo! Entertainment News";
            HyperLink1.NavigateUrl = "http://rss.news.yahoo.com/rss/entertainment";
            replaceString = "http://us.rd.yahoo.com/dailynews/rss/entertainment/*";

        }
    }

    protected void Button2_Click(object sender, EventArgs e)
    {
        string selectedValue = DropDownList1.SelectedValue;
        goThroughIfProcedure(selectedValue, replaceString);
        string url = "http://rss.news.yahoo.com/rss/";
        url += selectedValue;
        XDocument xdoc = XDocument.Load(url);
        var feeds = from feed in xdoc.Descendants("item")
                    where feed.Element("description").Value == "Obama"
                    select new
                    {
                        title = feed.Element("title").Value,
                        url = feed.Element("link").Value.Replace(replaceString, ""),
                        description = feed.Element("description").Value.
                        Replace(replaceString, "").Replace("&", "&amp;").Replace("&amp;mdash;", "--").Contains("Obama"),
                        date = feed.Element("pubDate").Value
                    };

        Accordion1.DataSource = feeds;
        Accordion1.DataBind();
        Accordion1.SelectedIndex = 0;
    }
}

Open in new window

LVL 3
ashley2009Asked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

käµfm³d 👽Commented:
Shouldn't you be checking via a substring condition rather than an equals condition?
var feeds = from feed in xdoc.Descendants("item")
            where feed.Element("description").Value.ToLower().Contains("obama")
            select new
            {
                title = feed.Element("title").Value,
                url = feed.Element("link").Value.Replace(replaceString, ""),
                description = feed.Element("description").Value.
                Replace(replaceString, "").Replace("&", "&amp;").Replace("&amp;mdash;", "--").Contains("Obama"),
                date = feed.Element("pubDate").Value
            };

Open in new window

0
käµfm³d 👽Commented:
There is an extra Contains() in the above--not sure why you had it, but I removed it here:
var feeds = from feed in xdoc.Descendants("item")
            where feed.Element("description").Value.ToLower().Contains("obama")
            select new
            {
                title = feed.Element("title").Value,
                url = feed.Element("link").Value.Replace(replaceString, ""),
                description = feed.Element("description").Value.
                Replace(replaceString, "").Replace("&", "&amp;").Replace("&amp;mdash;", "--"),
                date = feed.Element("pubDate").Value
            };

Open in new window

0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
ashley2009Author Commented:
Hello,

thank you and your solution is working. I am sorry for the extra .Contains()

Thank you again.
0
käµfm³d 👽Commented:
NP.  Glad to help  :)
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
.NET Programming

From novice to tech pro — start learning today.