LINQ: функция подстроки слева - PullRequest
0 голосов
/ 01 марта 2012

Я пытаюсь получить значения «Заголовок», используя следующие коды:

private void GetTweets_Click(object sender, RoutedEventArgs e)
    {
        WebClient client = new WebClient();

        client.DownloadStringCompleted += (s, ea) =>
        {
            XDocument doc = XDocument.Parse(ea.Result);
            XNamespace ns = "http://www.w3.org/2005/Atom";

            var items = from item in doc.Descendants(ns + "entry")
                select new Tweet()
                {
                    Title = item.Element(ns + "title").Value,

                    Image = new Uri((from XElement xe in item.Descendants(ns + "link")
                        where xe.Attribute("type").Value == "image/png"
                        select xe.Attribute("href").Value).First<string>()),
                };
            foreach (Tweet t in items)
            {
                _tweets.Add(t);
            }
        };

        client.DownloadStringAsync(new Uri("https://twitter.com/statuses/user_timeline/[username].atom?count=10"));
    }

Мне удалось получить список твитов, однако я хочу удалить первые 16 символов, отображаемыхзначение 'Title'.

Есть ли здесь способ использовать функцию подстроки?Спасибо.

1 Ответ

2 голосов
/ 01 марта 2012

Предполагая, что item.Element(ns + "title").Value является string, вы должны иметь возможность использовать метод String.Substring (Int32) .

Title = item.Element(ns + "title").Value.Substring(16),

Имейте в виду, что это приведет кисключение, если длина заголовка меньше 16 символов, поэтому, вероятно, лучше сначала проверить это.

Title = item.Element(ns + "title").Value.Length > 16 
        ? item.Element(ns + "title").Value.Substring(16) 
        : item.Element(ns + "title").Value,
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...