【问题标题】:Check if list of string contains object property value, and if it does remove it from the list of strings检查字符串列表是否包含对象属性值,以及是否将其从字符串列表中删除
【发布时间】:2014-09-04 21:26:46
【问题描述】:

我有这个字符串列表:

List<string> clubs = dropdownSelectedvalue.Split(',').ToList();

这些值将是例如:1255,1233,2233。现在我有一个与俱乐部列表中的值具有相同属性的对象。我想要实现的是从现有的 propertyid 中清除俱乐部列表,以防 id 在列表中并且只留下不存在的 id。

这是对象:

public class Clubs
{
    public int? ClubId { get; set; }    
    public string ClubName { get; set; }
}

是否有任何 linq 命令或类似的东西可以用来解决这个问题?

添加代码:

List<string> newClubs = clubs.Remove(s => Club.ClubId.ToString().Equals(clubs));

类似这样的东西,但它还没有完成,我已经达到了这一点。

每个请求添加的附加代码:

List<Clubs> Clubs = Clubs.LoadAll();
foreach (Clubs club in Clubs)
{
    var dropdownSelectedvalue = values[sponsor.WebUserId.Value.ToString()];
    List<string> clubs = dropdownSelectedvalue.Split(',').ToList();             
    List<string> newClubs = ?                
}

【问题讨论】:

  • Is there any linq command or something similar which I can utilize for this issue? 是的。还有其他问题吗?
  • 您被否决的原因是我们想看看您尝试了哪些 LINQ 运算符,以及您在自己的实现中遇到了哪些问题。
  • @KirkWoll L.B 我添加了我尝试过的代码示例(不完整)。谢谢
  • @KirkWoll 请检查更新的说明。谢谢
  • 与论坛网站不同,我们不使用“谢谢”、“感谢任何帮助”或Stack Overflow 上的签名。请参阅“Should 'Hi', 'thanks,' taglines, and salutations be removed from posts?.

标签: c# asp.net linq c#-4.0 linq-to-objects


【解决方案1】:

简体中文:在我的俱乐部 ID 列表中没有包含俱乐部的ClubId 的所有俱乐部都给我

林克:

var query = clubList.Where(c => !clubs.Contains(c.ClubID));

【讨论】:

  • 是否可以从过滤后的列表中生成新的字符串列表? query.ToLIst() 给了我空的字符串列表。谢谢
  • @Laziale 不确定我是否关注 - 您想要俱乐部列表还是字符串列表?如果您想要俱乐部名称列表,只需在末尾添加 .Select(c=&gt;c.ClubName)
【解决方案2】:

最易读的方式是:-

var newClubs = clubs.Except(allClubs).ToList();

你会在你的俱乐部课上实现IEquatable&lt;Club&gt;

http://msdn.microsoft.com/en-us/library/vstudio/bb300779(v=vs.100).aspx

或者,如果您只想处理字符串,请将您的 allClubs 列表投影到仅包含俱乐部名称(使用 Select),然后在字符串上使用 Except

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-16
    • 1970-01-01
    • 2020-02-26
    • 1970-01-01
    • 2019-06-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多